Fri Apr 29 14:53:42 2016

Server Performance Benchmark Report

Below are the results of testing network server implementations. Each server is constrained to run in a single process. Test environment: Linux 4.4.5 (Ubuntu 16.04, x86_64) on Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz.

Results

Detailed Benchmark Data

http
1.0KiB, c 300 10.0KiB, c 300 100.0KiB, c 300
asyncio aiohttp
Requests/sec3255.26 3076.44 2990.48
Transfer/sec3.53MiB 30.38MiB 292.37MiB
Min latency35.912ms 54.503ms 54.323ms
Mean latency91.237ms 97.951ms 99.757ms
Max latency5367.143ms 4404.862ms 4875.984ms
Latency variation110.101ms (120.68%) 102.525ms (104.67%) 105.567ms (105.82%)
asyncio httptools
Requests/sec24960.5 21345.66 15920.64
Transfer/sec25.97MiB 209.84MiB 1555.8MiB
Min latency8.073ms 10.728ms 17.26ms
Mean latency11.994ms 13.99ms 18.78ms
Max latency74.457ms 18.681ms 23.714ms
Latency variation0.63ms (5.25%) 0.59ms (4.22%) 0.593ms (3.16%)
uvloop aiohttp
Requests/sec3440.57 3262.15 3184.19
Transfer/sec3.73MiB 32.21MiB 311.31MiB
Min latency84.575ms 90.726ms 92.79ms
Mean latency87.25ms 91.758ms 93.974ms
Max latency118.426ms 100.885ms 106.086ms
Latency variation5.347ms (6.13%) 0.872ms (0.95%) 1.116ms (1.19%)
uvloop httptools
Requests/sec37866.28 30400.92 20475.92
Transfer/sec39.4MiB 298.86MiB 2000.95MiB
Min latency3.665ms 7.326ms 13.762ms
Mean latency7.943ms 9.862ms 14.62ms
Max latency19.229ms 18.624ms 27.953ms
Latency variation0.739ms (9.3%) 0.845ms (8.57%) 0.531ms (3.63%)
nodejs
Requests/sec20150.21 12821.82 3542.36
Transfer/sec21.62MiB 126.46MiB 346.28MiB
Min latency14.45ms 22.976ms 83.648ms
Mean latency14.85ms 23.351ms 84.461ms
Max latency18.722ms 24.483ms 133.778ms
Latency variation0.246ms (1.65%) 0.306ms (1.31%) 2.766ms (3.28%)
golang
Requests/sec39370.0 20531.73 17727.29
Transfer/sec42.92MiB 203.21MiB 1733.53MiB
Min latency0.03ms 0.051ms 0.1ms
Mean latency7.675ms 14.611ms 16.877ms
Max latency15.036ms 25.367ms 36.006ms
Latency variation2.371ms (30.89%) 3.873ms (26.51%) 4.494ms (26.63%)