$ 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