$ perl -v
This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux
$ echo "sub { [ 200, [], ['OK'] ] }" > app.psgi
####
$ man Gazelle | head
Gazelle(3) User Contributed Perl Documentation Gazelle(3)
NAME
Gazelle - a Preforked Plack Handler for performance freaks
SYNOPSIS
$ plackup -s Gazelle --port 5003 --max-reqs-per-child 50000 \
-E production -a app.psgi
$ plackup -s Gazelle --port 5003 --max-reqs-per-child 50000 -E production -a app.psgi &
$ ab -n 10000 -c 100 http://localhost:5003/
(snip)
Document Path: /
Document Length: 2 bytes
Concurrency Level: 100
Time taken for tests: 0.430 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 940000 bytes
HTML transferred: 20000 bytes
Requests per second: 23277.36 [#/sec] (mean)
Time per request: 4.296 [ms] (mean)
Time per request: 0.043 [ms] (mean, across all concurrent requests)
Transfer rate: 2136.79 [Kbytes/sec] received
####
$ starman --workers 8 --max-requests 1000000 &
$ ab -n 10000 -c 100 http://localhost:5000/
(snip)
Concurrency Level: 100
Time taken for tests: 0.585 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 770000 bytes
HTML transferred: 20000 bytes
Requests per second: 17102.06 [#/sec] (mean)
Time per request: 5.847 [ms] (mean)
Time per request: 0.058 [ms] (mean, across all concurrent requests)
Transfer rate: 1285.99 [Kbytes/sec] received
####
$ plackup -s Feersum --pre-fork=8 --access-log=/dev/null app.psgi &
$ ab -n 10000 -c 100 http://localhost:5000/
(snip)
Concurrency Level: 100
Time taken for tests: 0.542 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 400000 bytes
HTML transferred: 20000 bytes
Requests per second: 18437.56 [#/sec] (mean)
Time per request: 5.424 [ms] (mean)
Time per request: 0.054 [ms] (mean, across all concurrent requests)
Transfer rate: 720.22 [Kbytes/sec] received