Skip to content

Instantly share code, notes, and snippets.

@rbjorklin
Created March 29, 2025 20:29
Show Gist options
  • Save rbjorklin/a7cf1373b0acf14bdb45a9dc0962aba4 to your computer and use it in GitHub Desktop.
Save rbjorklin/a7cf1373b0acf14bdb45a9dc0962aba4 to your computer and use it in GitHub Desktop.
OCaml benchmarking results of httpaf and httpun on the TechEmpowerBenchmark json test
BENCHMARKING JSON ...
---------------------------------------------------------
Running Primer json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 5 -c 8 --timeout 8 -t 8 http://tfb-server:8080/json
---------------------------------------------------------
Running 5s test @ http://tfb-server:8080/json
8 threads and 8 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 29.08us 13.57us 1.85ms 99.21%
Req/Sec 33.44k 2.38k 40.39k 68.87%
Latency Distribution
50% 29.00us
75% 32.00us
90% 34.00us
99% 41.00us
1357249 requests in 5.10s, 195.45MB read
Requests/sec: 266134.82
Transfer/sec: 38.32MB
---------------------------------------------------------
Running Warmup json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 512 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 512 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 18.17ms 52.50ms 900.98ms 92.42%
Req/Sec 31.69k 6.47k 98.47k 74.35%
Latency Distribution
50% 748.00us
75% 7.19ms
90% 54.52ms
99% 258.93ms
7579782 requests in 15.09s, 1.07GB read
Requests/sec: 502235.08
Transfer/sec: 72.32MB
---------------------------------------------------------
Concurrency: 16 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 16 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 16 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 49.04us 43.06us 4.51ms 98.16%
Req/Sec 20.89k 3.36k 26.38k 51.95%
Latency Distribution
50% 46.00us
75% 54.00us
90% 62.00us
99% 123.00us
5021681 requests in 15.10s, 723.15MB read
Requests/sec: 332570.33
Transfer/sec: 47.89MB
STARTTIME 1743279537
ENDTIME 1743279552
---------------------------------------------------------
Concurrency: 32 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 32 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 32 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 127.73us 699.26us 33.48ms 98.75%
Req/Sec 26.57k 5.94k 50.29k 69.04%
Latency Distribution
50% 64.00us
75% 90.00us
90% 130.00us
99% 1.07ms
6378246 requests in 15.10s, 0.90GB read
Requests/sec: 422399.78
Transfer/sec: 60.83MB
STARTTIME 1743279554
ENDTIME 1743279569
---------------------------------------------------------
Concurrency: 64 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 64 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 64 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 11.11ms 59.99ms 975.20ms 96.11%
Req/Sec 29.91k 8.15k 117.85k 67.03%
Latency Distribution
50% 100.00us
75% 243.00us
90% 6.87ms
99% 273.88ms
7148055 requests in 15.10s, 1.01GB read
Requests/sec: 473436.87
Transfer/sec: 68.18MB
STARTTIME 1743279571
ENDTIME 1743279586
---------------------------------------------------------
Concurrency: 128 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 128 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 13.66ms 50.41ms 835.07ms 94.09%
Req/Sec 30.78k 7.25k 59.11k 69.46%
Latency Distribution
50% 164.00us
75% 1.26ms
90% 30.08ms
99% 275.54ms
7352513 requests in 15.02s, 1.03GB read
Requests/sec: 489575.34
Transfer/sec: 70.50MB
STARTTIME 1743279588
ENDTIME 1743279603
---------------------------------------------------------
Concurrency: 256 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 256 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 12.64ms 42.12ms 596.13ms 93.20%
Req/Sec 31.11k 6.77k 69.50k 70.79%
Latency Distribution
50% 314.00us
75% 2.30ms
90% 30.22ms
99% 228.78ms
7439293 requests in 15.07s, 1.05GB read
Requests/sec: 493579.11
Transfer/sec: 71.08MB
STARTTIME 1743279605
ENDTIME 1743279620
---------------------------------------------------------
Concurrency: 512 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 512 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 512 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 18.22ms 63.21ms 1.22s 94.47%
Req/Sec 30.81k 5.85k 54.63k 75.04%
Latency Distribution
50% 780.00us
75% 6.11ms
90% 41.28ms
99% 334.72ms
7366199 requests in 15.06s, 1.04GB read
Requests/sec: 489015.02
Transfer/sec: 70.42MB
STARTTIME 1743279622
ENDTIME 1743279637
BENCHMARKING JSON ...
---------------------------------------------------------
Running Primer json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 5 -c 8 --timeout 8 -t 8 http://tfb-server:8080/json
---------------------------------------------------------
Running 5s test @ http://tfb-server:8080/json
8 threads and 8 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 188.44us 415.93us 5.52ms 89.85%
Req/Sec 19.02k 2.65k 25.26k 60.93%
Latency Distribution
50% 40.00us
75% 48.00us
90% 615.00us
99% 2.08ms
769829 requests in 5.10s, 110.86MB read
Requests/sec: 150968.50
Transfer/sec: 21.74MB
---------------------------------------------------------
Running Warmup json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 512 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 512 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.68ms 2.74ms 51.97ms 84.98%
Req/Sec 14.72k 4.31k 65.63k 72.87%
Latency Distribution
50% 1.44ms
75% 4.08ms
90% 6.34ms
99% 12.23ms
3522558 requests in 15.10s, 507.27MB read
Requests/sec: 233304.08
Transfer/sec: 33.60MB
---------------------------------------------------------
Concurrency: 16 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 16 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 16 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 554.14us 1.10ms 10.63ms 87.03%
Req/Sec 10.36k 2.21k 23.85k 65.18%
Latency Distribution
50% 65.00us
75% 223.00us
90% 2.14ms
99% 4.90ms
2474927 requests in 15.10s, 356.40MB read
Requests/sec: 163913.24
Transfer/sec: 23.60MB
STARTTIME 1743279323
ENDTIME 1743279338
---------------------------------------------------------
Concurrency: 32 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 32 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 32 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 761.60us 1.36ms 12.60ms 85.90%
Req/Sec 12.01k 4.09k 26.81k 68.85%
Latency Distribution
50% 113.00us
75% 695.00us
90% 2.83ms
99% 5.80ms
2881299 requests in 15.10s, 414.92MB read
Requests/sec: 190825.71
Transfer/sec: 27.48MB
STARTTIME 1743279340
ENDTIME 1743279355
---------------------------------------------------------
Concurrency: 64 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 64 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 64 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 0.96ms 1.49ms 16.66ms 84.79%
Req/Sec 12.96k 4.09k 27.99k 73.00%
Latency Distribution
50% 177.00us
75% 1.23ms
90% 3.27ms
99% 6.10ms
3094214 requests in 15.01s, 445.58MB read
Requests/sec: 206185.33
Transfer/sec: 29.69MB
STARTTIME 1743279357
ENDTIME 1743279372
---------------------------------------------------------
Concurrency: 128 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 128 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.24ms 1.71ms 32.50ms 84.41%
Req/Sec 13.84k 4.56k 29.74k 73.54%
Latency Distribution
50% 323.00us
75% 1.78ms
90% 3.84ms
99% 6.83ms
3305263 requests in 15.01s, 475.97MB read
Requests/sec: 220202.42
Transfer/sec: 31.71MB
STARTTIME 1743279374
ENDTIME 1743279389
---------------------------------------------------------
Concurrency: 256 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 256 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.78ms 2.23ms 33.15ms 84.90%
Req/Sec 14.53k 4.55k 31.27k 71.92%
Latency Distribution
50% 616.00us
75% 2.68ms
90% 4.90ms
99% 9.50ms
3470474 requests in 15.03s, 499.76MB read
Requests/sec: 230961.35
Transfer/sec: 33.26MB
STARTTIME 1743279391
ENDTIME 1743279406
---------------------------------------------------------
Concurrency: 512 for json
wrk -H 'Host: tfb-server' -H 'Accept: application/json,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 512 --timeout 8 -t 16 "http://tfb-server:8080/json"
---------------------------------------------------------
Running 15s test @ http://tfb-server:8080/json
16 threads and 512 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.71ms 2.72ms 43.80ms 84.68%
Req/Sec 14.42k 3.85k 28.42k 68.21%
Latency Distribution
50% 1.52ms
75% 4.12ms
90% 6.36ms
99% 12.17ms
3446371 requests in 15.03s, 496.29MB read
Requests/sec: 229230.27
Transfer/sec: 33.01MB
STARTTIME 1743279408
ENDTIME 1743279423
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment