haskell-servant / haskell-servant/servant

Consecutive requests are getting slower and slower

Open
#1,167 9 comments 1 reaction 0 assignees View on GitHub
performance
Dominant language
Haskell
Stars
2k
Forks
427
Avg merge
2d 23h
Merged PRs (30d)
5

Description

see [reproduction repo](https://github.com/Allsimon/example-servant-minimal)

```
# copy pastable reproduction steps
git clone https://github.com/Allsimon/example-servant-minimal && cd example-servant-minimal
stack build && stack exec example-servant-minimal

# in another shell
./reproduce.sh
```

This is going to send batches of 1000 requests to a really simple endpoint: requests are taking more and more time.
```
➜ example-servant-minimal git:(master) ✗ ./reproduce.sh
Time per request: 0.281 [ms] (mean, across all concurrent requests)
Time per request: 0.504 [ms] (mean, across all concurrent requests)
Time per request: 0.886 [ms] (mean, across all concurrent requests)
Time per request: 1.034 [ms] (mean, across all concurrent requests)
Time per request: 1.416 [ms] (mean, across all concurrent requests)
Time per request: 2.144 [ms] (mean, across all concurrent requests)
Time per request: 2.041 [ms] (mean, across all concurrent requests)
Time per request: 2.306 [ms] (mean, across all concurrent requests)
Time per request: 2.663 [ms] (mean, across all concurrent requests)
Time per request: 2.905 [ms] (mean, across all concurrent requests)
Time per request: 3.134 [ms] (mean, across all concurrent requests)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.