Skip to content

Oxpecker updates - #1276

Open
Lanayx wants to merge 5 commits into
MDA2AV:mainfrom
Lanayx:main
Open

Oxpecker updates #1276
Lanayx wants to merge 5 commits into
MDA2AV:mainfrom
Lanayx:main

Conversation

@Lanayx

@Lanayx Lanayx commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Description

Updates for static files, for fortunes, several code simplifications.


PR Commands — comment on this PR to trigger (requires collaborator approval):

Command Description
/benchmark -f <framework> Run every test the framework subscribes to
/benchmark -f <framework> -t <test> Run one test only
/benchmark -f <framework> --save Run and save results (updates the leaderboard on merge)
/benchmark -f <framework> -t <test> --save Run one test and save results
/benchmark -f <framework> --compare <other> Measure the deltas against another framework instead of this one
/benchmark-multiple -f <fw1>,<fw2>,... Benchmark several frameworks in one run — takes -t and --save too; saved results land in a single commit
/benchmark-multiple --save No -f needed: benchmark and save every framework the PR touches
/benchmark-test -t <test> Benchmark all enabled frameworks subscribed to <test> and save the results

For /benchmark, always specify -f <framework>; the flags combine in any order. Results come back as a comment with a per-profile table of RPS, p99, CPU and memory — one table per framework on multi runs. A new benchmark comment while a run is in flight queues behind it (one deep) instead of cancelling it. For multi-framework PRs (dependency bumps, same-language refactors) prefer /benchmark-multiple, which runs everything in a single job and commits all saved results together, so no run overwrites another. --compare works on single-framework runs only.

What the deltas are measured against. By default, this framework's own results published on main - answering "did this change help?". When you are tuning a variant or a successor entry, --compare re-bases them on another entry instead:

/benchmark -f genhttp-11 --compare genhttp-11-kestrel

The reply states which baseline it used, and profiles the other framework does not run show n/a rather than a delta.


Run benchmarks locally

You can validate and benchmark your framework locally with the lite script — no CPU pinning, fixed connection counts, all load generators run in Docker.

./scripts/validate.sh <framework>
./scripts/benchmark-lite.sh <framework> baseline
./scripts/benchmark-lite.sh --load-threads 4 <framework>

Requirements: Docker Engine on Linux. Load generators (gcannon, h2load, h2load-h3, wrk, ghz) are built as self-contained Docker images on first run.

@Lanayx

Lanayx commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f oxpecker

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: oxpecker | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,389,493 4967.0% 206MiB -1.0% -5.5%
baseline 4096 1,418,292 5511.7% 327MiB -1.1% -6.3%
pipelined 512 13,790,508 5880.4% 133MiB +1.9% -0.7%
pipelined 4096 14,016,241 5834.5% 353MiB -1.0% +7.6%
limited-conn 512 459,527 3212.4% 118MiB +1.9% -4.1%
limited-conn 4096 467,546 3172.6% 124MiB +1.4% -2.4%
json 4096 643,930 5978.4% 496MiB +1.8% +7.1%
json-comp 512 366,964 5570.6% 241MiB +0.7% -4.0%
json-comp 4096 362,525 5959.9% 525MiB +2.0% +0.6%
json-comp 16384 358,693 5883.0% 693MiB +2.1% +16.3%
json-tls 4096 542,706 6130.2% 720MiB -0.2% +10.8%
upload 32 1,306 6146.5% 145MiB -0.7% -0.7%
upload 256 1,540 6282.2% 344MiB -0.1% +6.8%
api-4 256 34,579 378.6% 128MiB -1.2% -3.8%
api-16 1024 103,341 1430.4% 244MiB -2.0% -2.0%
static 1024 117,059 6068.8% 413MiB -0.5% +4.3%
static 4096 117,129 6091.4% 722MiB +2.0% -11.5%
static 6800 115,977 6165.4% 1010MiB +0.5% +1.8%
static-tls 1024 94,973 6067.4% 570MiB -0.5% +6.5%
static-tls 4096 93,894 5971.2% 1.3GiB +0.5% ~0%
static-tls 6800 91,100 6080.8% 1.6GiB -0.7% -11.1%
async-db 1024 183,499 4408.4% 388MiB -0.6% -0.5%
crud 4096 364,991 5442.0% 428MiB +0.7% -0.9%
fortunes 1024 75,053 5268.3% 413MiB +2.3% -0.2%
baseline-h2 256 2,720,489 6218.7% 1.1GiB +0.6% ~0%
baseline-h2 1024 2,657,855 6070.0% 2.9GiB +0.6% ~0%
static-h2 256 71,087 6024.9% 3.2GiB -3.3% -8.6%
static-h2 1024 60,409 6146.3% 9.1GiB +14.2% +1.1%
baseline-h2c 256 3,462,111 6368.4% 1.1GiB -0.9% +11.1%
baseline-h2c 1024 3,309,352 6191.1% 2.8GiB +1.4% +3.7%
baseline-h2c 4096 2,749,760 5876.4% 7.4GiB -4.1% +12.1%
json-h2c 1024 850,188 6212.6% 1.5GiB ~0% -28.6%
json-h2c 4096 746,603 5860.2% 4.6GiB +3.0% +12.2%
baseline-h3 64 632,180 6171.8% 1.7GiB -4.9% +41.7%
static-h3 64 32,539 5884.1% 1.7GiB -6.4% +6.2%
Full log
min RTT     :       12us       124us        48us       95us      124us       51us        18us    84.38%
smoothed RTT:      279us      2.04ms       655us     1.21ms     2.04ms      709us       321us    71.88%
packets sent:       4141       14043        9087      13063      14043    9217.36     2392.00    68.75%
packets recv:       7481       26383       17781      25439      26383   17730.16     4924.15    68.75%
packets lost:          0         169          95        156        169      91.47       37.92    65.63%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6127.5% | Mem 1.2GiB

[run 3/3]
starting benchmark...
4.
14.
39.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
1Stopped all clients for thread #17
. Stopping all clients.
16. Stopping all clients.

finished in 5.01s, 633334.00 req/s, 56.79MB/s
requests: 3166670 total, 3170766 started, 3166670 done, 3166670 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3167224 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 283.93MB (297719568) total, 265.80MB (278715976) headers (space savings 27.87%), 3.02MB (3167227) data
UDP datagram: 598971 sent, 1149293 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      589us     65.49ms      5.27ms    10.98ms    18.03ms     5.93ms      3.20ms    85.87%
connect     :     2.58ms     20.40ms      7.45ms    17.08ms    20.40ms     8.24ms      4.40ms    75.00%
TTFB        :     3.27ms     42.33ms     12.84ms    26.87ms    42.33ms    15.01ms      8.38ms    73.44%
req/s       :    8157.72    12852.55    10074.24   11404.48   12852.55    9894.76     1064.15    59.38%
min RTT     :       19us        82us        48us       74us       82us       49us        12us    68.75%
smoothed RTT:      330us      1.84ms       724us     1.64ms     1.84ms      873us       383us    67.19%
packets sent:       6067       14842        9368      13057      14842    9360.92     2346.17    50.00%
packets recv:      11191       27662       18154      25436      27662   17958.70     4850.24    50.00%
packets lost:          0         204         108        177        204     104.67       40.65    68.75%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6171.8% | Mem 1.7GiB

=== Best: 632180 req/s (CPU: 6171.8%, Mem: 1.7GiB) ===
[info] saved results/baseline-h3/64/oxpecker.json
httparena-bench-oxpecker
httparena-bench-oxpecker

==============================================
=== oxpecker / static-h3 / 64c (tool=h2load-h3) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
.Main benchmark duration is started for thread #3.

30.
11.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
4. Stopping all clients.
0. Stopping all clients.
23Stopped all clients for thread #44
. Stopping all clients.
56. Stopping all clients.

finished in 5.01s, 31913.00 req/s, 870.37MB/s
requests: 159565 total, 163661 started, 159565 done, 159565 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 163023 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 4.25GB (4563219877) total, 20.76MB (21772478) headers (space savings 34.81%), 4.23GB (4538560916) data
UDP datagram: 860150 sent, 3270925 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     2.26ms       1.26s     53.89ms   321.62ms   619.48ms   101.06ms    120.71ms    88.36%
connect     :   969.67ms       1.09s       1.00s      1.02s      1.09s   997.11ms     21.37ms    73.44%
TTFB        :      1.10s       1.45s       1.16s      1.44s      1.45s      1.21s    104.52ms    76.56%
req/s       :     342.37      643.77      495.03     639.28     643.77     498.59       91.41    62.50%
min RTT     :       20us        72us        57us       67us       72us       56us         8us    78.13%
smoothed RTT:      346us      2.94ms      1.22ms     2.74ms     2.94ms     1.43ms       649us    67.19%
packets sent:       8557       18674       13230      17977      18674   13441.84     2830.41    62.50%
packets recv:      34691       66394       50646      66080      66394   51109.20     9636.09    62.50%
packets lost:          0         201          38        155        201      51.33       46.25    81.25%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 5884.1% | Mem 1.7GiB

[run 2/3]
starting benchmark...
.
.
.Main benchmark duration is started for thread #21.

.
48.
19

15Main benchmark duration is over for thread #21. Stopping all clients.
. Stopping all clients.

12. Stopping all clients.

24. Stopping all clients.
40. Stopping all clients.
28. Stopping all clients.
39. Stopping all clients.53
. Stopping all clients.
5145. Stopping all clients.. Stopping all clients.

41. Stopping all clients.
45
51
42
44
52. Stopping all clients.
54. Stopping all clients.

50. Stopping all clients.

finished in 5.01s, 0.00 req/s, 0B/s
requests: 0 total, 0 started, 0 done, 0 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 0B (0) total, 0B (0) headers (space savings 0.00%), 0B (0) data
UDP datagram: 544 sent, 480 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :        0us         0us         0us        0us        0us        0us         0us     0.00%
connect     :        0us         0us         0us        0us        0us        0us         0us     0.00%
TTFB        :        0us         0us         0us        0us        0us        0us         0us     0.00%
req/s       :       0.00        0.00        0.00       0.00       0.00       0.00        0.00   100.00%
min RTT     :    25.12ms     25.64ms     25.29ms    25.56ms    25.64ms    25.33ms       119us    67.19%
smoothed RTT:    25.32ms     26.24ms     25.67ms    26.04ms    26.24ms    25.72ms       217us    62.50%
packets sent:          8           9           8          9          9       8.50        0.50   100.00%
packets recv:          7           8           7          8          8       7.50        0.50   100.00%
packets lost:          0           0           0          0          0       0.00        0.00   100.00%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 1.5% | Mem 1.7GiB

[run 3/3]
starting benchmark...
20.
33.

. Stopping all clients.
43
61
27. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #
. Stopping all clients.
53. Stopping all clients.

. Stopping all clients.
25. Stopping all clients.
. Stopping all clients.

. Stopping all clients.

finished in 5.01s, 0.00 req/s, 0B/s
requests: 0 total, 0 started, 0 done, 0 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 0B (0) total, 0B (0) headers (space savings 0.00%), 0B (0) data
UDP datagram: 543 sent, 479 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :        0us         0us         0us        0us        0us        0us         0us     0.00%
connect     :        0us         0us         0us        0us        0us        0us         0us     0.00%
TTFB        :        0us         0us         0us        0us        0us        0us         0us     0.00%
req/s       :       0.00        0.00        0.00       0.00       0.00       0.00        0.00   100.00%
min RTT     :    25.13ms     25.56ms     25.28ms    25.46ms    25.56ms    25.30ms        81us    75.00%
smoothed RTT:    25.36ms     26.20ms     25.62ms    26.06ms    26.20ms    25.67ms       232us    60.94%
packets sent:          8           9           8          9          9       8.48        0.50    51.56%
packets recv:          7           8           7          8          8       7.48        0.50    51.56%
packets lost:          0           0           0          0          0       0.00        0.00   100.00%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 2.9% | Mem 1.7GiB

=== Best: 32539 req/s (CPU: 5884.1%, Mem: 1.7GiB) ===
[info] saved results/static-h3/64/oxpecker.json
httparena-bench-oxpecker
httparena-bench-oxpecker
[info] skip: oxpecker does not subscribe to gateway-64
[info] skip: oxpecker does not subscribe to gateway-h3
[info] skip: oxpecker does not subscribe to production-stack
[info] skip: oxpecker does not subscribe to unary-grpc
[info] skip: oxpecker does not subscribe to unary-grpc-tls
[info] skip: oxpecker does not subscribe to stream-grpc
[info] skip: oxpecker does not subscribe to stream-grpc-tls
[info] skip: oxpecker does not subscribe to echo-ws
[info] skip: oxpecker does not subscribe to echo-ws-pipeline
[info] skip: oxpecker does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/oxpecker.json - 35 new, 35 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536

@Lanayx

Lanayx commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f aspnet-minimal

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: aspnet-minimal | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,261,075 5289.7% 235MiB +0.7% -5.6%
baseline 4096 1,297,322 5525.5% 368MiB +1.4% +4.5%
pipelined 512 5,535,687 5196.0% 170MiB -17.8% -2.3%
pipelined 4096 5,623,933 5695.7% 371MiB -20.2% +7.2%
limited-conn 512 454,619 3487.0% 138MiB -0.3% -5.5%
limited-conn 4096 454,305 3615.7% 142MiB -1.5% -7.2%
json 4096 563,929 5871.5% 509MiB -0.9% -9.3%
json-comp 512 341,498 5487.9% 258MiB +2.5% +5.7%
json-comp 4096 328,985 5895.7% 562MiB -1.9% -3.3%
json-comp 16384 335,720 5866.7% 791MiB +0.1% +19.7%
json-tls 4096 503,381 6008.3% 783MiB -0.4% -2.7%
upload 32 1,298 6219.3% 158MiB ~0% -4.2%
upload 256 1,544 6241.4% 384MiB +0.2% +15.0%
api-4 256 37,317 393.7% 137MiB +0.4% -2.1%
api-16 1024 112,412 1511.6% 220MiB -0.1% -13.4%
static 1024 116,229 6102.1% 382MiB -67.2% +45.8%
static 4096 113,105 6055.9% 775MiB -67.7% +60.8%
static 6800 113,838 6082.8% 1.0GiB -66.6% +82.9%
static-tls 1024 93,585 6206.8% 518MiB -61.5% +12.1%
static-tls 4096 92,213 6113.0% 1.3GiB -63.9% +44.4%
static-tls 6800 90,273 6037.6% 1.7GiB -64.1% +41.7%
async-db 1024 168,159 3665.8% 404MiB +3.0% -2.4%
crud 4096 398,170 5530.9% 425MiB +1.3% -2.5%
fortunes 1024 77,749 5403.0% 493MiB +2.9% +7.2%
baseline-h2 256 2,220,613 6186.7% 1013MiB +0.8% -1.1%
baseline-h2 1024 2,107,237 5957.9% 4.8GiB +1.1% +26.3%
static-h2 256 72,231 5919.4% 3.3GiB -60.9% +262.2%
static-h2 1024 52,266 5947.8% 9.2GiB -57.7% +217.2%
baseline-h2c 256 2,723,032 6196.1% 980MiB +1.4% -4.3%
baseline-h2c 1024 2,557,024 6119.1% 4.3GiB +4.2% -4.4%
baseline-h2c 4096 1,879,892 5742.4% 7.4GiB +46.8% -5.1%
json-h2c 1024 705,362 6199.9% 1.8GiB +2.2% +20.0%
json-h2c 4096 580,502 5910.5% 4.3GiB -2.6% -17.3%
baseline-h3 64 655,970 6139.5% 1.5GiB +4.7% +25.0%
static-h3 64 33,558 5535.1% 1.7GiB -72.2% -10.5%
Full log
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3


51. Stopping all clients.


finished in 5.01s, 637579.00 req/s, 65.70MB/s
requests: 3187895 total, 3191991 started, 3187895 done, 3187895 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3189379 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 328.50MB (344453444) total, 310.25MB (325316862) headers (space savings 19.69%), 3.04MB (3189381) data
UDP datagram: 610149 sent, 1179351 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      345us     75.42ms      5.00ms    14.14ms    25.16ms     6.36ms      4.60ms    86.76%
connect     :     4.26ms     38.60ms      8.94ms    34.91ms    38.60ms    16.85ms     11.76ms    60.94%
TTFB        :     5.06ms     59.43ms     32.90ms    57.48ms    59.43ms    30.28ms     17.55ms    46.88%
req/s       :    4468.03    12417.47    10495.89   12081.79   12417.47    9960.94     2257.09    85.94%
min RTT     :       14us       170us        48us      153us      170us       56us        34us    84.38%
smoothed RTT:      221us      2.45ms       653us     1.75ms     2.45ms      804us       484us    76.56%
packets sent:       2840       13936        9723      13775      13936    9535.58     3298.84    62.50%
packets recv:       5191       27107       18898      26790      27107   18428.33     6692.68    62.50%
packets lost:          0         200         102        165        200      92.00       49.14    65.63%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6113.3% | Mem 1.3GiB

[run 3/3]
starting benchmark...
2Main benchmark duration is started for thread #1.
.
.
19.
TLS Protocol: Main benchmark duration is started for thread #48.
TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
50.

finished in 5.01s, 657000.40 req/s, 67.70MB/s
requests: 3285002 total, 3289098 started, 3285002 done, 3285002 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3286410 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 338.49MB (354932792) total, 319.68MB (335213922) headers (space savings 19.69%), 3.13MB (3286411) data
UDP datagram: 608059 sent, 1155654 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      521us     77.37ms      5.00ms    11.18ms    17.00ms     5.76ms      3.27ms    85.20%
connect     :     2.82ms     18.96ms      8.34ms    15.53ms    18.96ms     8.74ms      3.47ms    62.50%
TTFB        :     4.76ms     55.84ms     14.68ms    50.40ms    55.84ms    16.51ms     12.21ms    90.63%
req/s       :    6265.55    12228.08    10679.81   11826.52   12228.08   10264.28     1515.93    82.81%
min RTT     :       13us       117us        48us       88us      117us       53us        19us    76.56%
smoothed RTT:      193us      1.47ms       546us     1.35ms     1.47ms      626us       328us    71.88%
packets sent:       4228       14148        9403      13612      14148    9502.92     2643.25    60.94%
packets recv:       7602       27119       17524      26227      27119   18058.09     5362.65    60.94%
packets lost:          0         201         106        176        201     101.95       49.16    62.50%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6139.5% | Mem 1.5GiB

=== Best: 655970 req/s (CPU: 6139.5%, Mem: 1.5GiB) ===
[info] saved results/baseline-h3/64/aspnet-minimal.json
httparena-bench-aspnet-minimal
httparena-bench-aspnet-minimal

==============================================
=== aspnet-minimal / static-h3 / 64c (tool=h2load-h3) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...


.

54Warm-up started for thread #.
44.
61.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
9. Stopping all clients.
17. Stopping all clients.

finished in 5.01s, 32974.40 req/s, 899.78MB/s
requests: 164872 total, 168968 started, 164872 done, 164872 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 168129 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 4.39GB (4717426901) total, 24.14MB (25312729) headers (space savings 33.05%), 4.37GB (4689091804) data
UDP datagram: 913585 sent, 3384789 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     1.67ms       1.18s     55.88ms   343.57ms   557.78ms   103.18ms    117.68ms    87.27%
connect     :   745.75ms    822.73ms    764.11ms   808.95ms   822.73ms   769.13ms     20.11ms    62.50%
TTFB        :   846.59ms       1.13s    940.11ms      1.10s      1.13s   951.95ms     90.52ms    51.56%
req/s       :     313.94      690.75      477.85     680.11     690.75     515.16      109.22    59.38%
min RTT     :       13us        77us        55us       71us       77us       55us        10us    79.69%
smoothed RTT:      531us      3.57ms      1.40ms     2.49ms     3.57ms     1.40ms       633us    68.75%
packets sent:       7782       21686       13035      20318      21686   14276.77     3693.34    65.63%
packets recv:      31690       71525       48767      70543      71525   52888.33    11579.99    59.38%
packets lost:          0         239          49        158        239      59.16       52.63    76.56%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 5535.1% | Mem 1.7GiB

[run 2/3]
starting benchmark...
50.
20.
22.
7.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
3Main benchmark duration is over for thread #40. Stopping all clients.
. Stopping all clients.
8. Stopping all clients.

. Stopping all clients.

finished in 5.01s, 8585.40 req/s, 233.68MB/s
requests: 42927 total, 47023 started, 42927 done, 42927 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 46795 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.14GB (1225141760) total, 6.72MB (7045407) headers (space savings 33.05%), 1.13GB (1217293943) data
UDP datagram: 255833 sent, 923039 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     6.26ms       1.84s     70.04ms      1.24s      1.46s   246.84ms    374.72ms    89.05%
connect     :      2.08s       2.10s       2.09s      2.10s      2.10s      2.09s      3.65ms    64.06%
TTFB        :      2.09s       3.31s       2.13s      3.30s      3.31s      2.48s    522.42ms    67.19%
req/s       :     129.39      139.58      134.49     138.19     139.58     134.13        2.41    65.63%
min RTT     :       12us        55us        41us       48us       55us       40us         8us    82.81%
smoothed RTT:      102us       206us       157us      195us      206us      155us        23us    62.50%
packets sent:       3120        5089        3984       4801       5089    3999.39      580.92    57.81%
packets recv:      13629       15447       14458      14975      15447   14423.47      428.08    64.06%
packets lost:          0          13           1          8         13       2.02        2.98    82.81%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 727.3% | Mem 2.0GiB

[run 3/3]
starting benchmark...
6.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3

44. Stopping all clients.
35. Stopping all clients.

finished in 5.01s, 1524.20 req/s, 39.15MB/s
requests: 7621 total, 11717 started, 7621 done, 7621 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 11452 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 195.73MB (205235581) total, 1.65MB (1725033) headers (space savings 33.04%), 193.94MB (203357493) data
UDP datagram: 42770 sent, 155341 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      916us       1.03s    113.96ms   309.84ms   749.59ms   136.86ms    132.49ms    93.52%
connect     :      3.96s       3.97s       3.97s      3.97s      3.97s      3.97s      3.04ms    64.06%
TTFB        :      3.96s       4.09s       4.02s      4.09s      4.09s      4.02s     40.74ms    54.69%
req/s       :      22.20       29.20       23.60      26.20      29.20      23.81        1.26    89.06%
min RTT     :       27us        66us        49us       62us       66us       49us         7us    68.75%
smoothed RTT:      131us      4.43ms       208us     2.30ms     4.43ms      795us       936us    84.38%
packets sent:        521         860         664        807        860     670.28       67.55    75.00%
packets recv:       2187        3085        2390       2825       3085    2428.20      161.02    82.81%
packets lost:          0           1           0          1          1       0.14        0.35    85.94%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 3.2% | Mem 2.2GiB

=== Best: 33558 req/s (CPU: 5535.1%, Mem: 1.7GiB) ===
[info] saved results/static-h3/64/aspnet-minimal.json
httparena-bench-aspnet-minimal
httparena-bench-aspnet-minimal
[info] skip: aspnet-minimal does not subscribe to gateway-64
[info] skip: aspnet-minimal does not subscribe to gateway-h3
[info] skip: aspnet-minimal does not subscribe to production-stack
[info] skip: aspnet-minimal does not subscribe to unary-grpc
[info] skip: aspnet-minimal does not subscribe to unary-grpc-tls
[info] skip: aspnet-minimal does not subscribe to stream-grpc
[info] skip: aspnet-minimal does not subscribe to stream-grpc-tls
[info] skip: aspnet-minimal does not subscribe to echo-ws
[info] skip: aspnet-minimal does not subscribe to echo-ws-pipeline
[info] skip: aspnet-minimal does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/aspnet-minimal.json - 35 new, 47 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536

@MDA2AV

MDA2AV commented Aug 23, 2026

Copy link
Copy Markdown
Owner

btw aspnet values on site are not updated as it is being modified (nerfing static files tests)

Repository owner deleted a comment from github-actions Bot Aug 23, 2026
Repository owner deleted a comment from github-actions Bot Aug 23, 2026
@MDA2AV

MDA2AV commented Aug 23, 2026

Copy link
Copy Markdown
Owner

/benchmark -f oxpecker --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

Repository owner deleted a comment from github-actions Bot Aug 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: oxpecker | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,410,285 5010.3% 214MiB +0.4% -1.8%
baseline 4096 1,444,879 5621.0% 320MiB +0.8% -8.3%
pipelined 512 13,699,003 5914.5% 132MiB +1.2% -1.5%
pipelined 4096 14,011,805 5838.6% 263MiB -1.0% -19.8%
limited-conn 512 467,843 3360.9% 120MiB +3.7% -2.4%
limited-conn 4096 463,184 3142.6% 124MiB +0.5% -2.4%
json 4096 629,531 5921.4% 431MiB -0.4% -6.9%
json-comp 512 369,192 5570.4% 252MiB +1.3% +0.4%
json-comp 4096 365,828 5874.9% 501MiB +2.9% -4.0%
json-comp 16384 362,467 5833.5% 636MiB +3.2% +6.7%
json-tls 4096 549,249 6090.2% 862MiB +1.0% +32.6%
upload 32 1,296 6392.3% 151MiB -1.4% +3.4%
upload 256 1,563 6370.8% 341MiB +1.4% +5.9%
api-4 256 35,594 385.6% 134MiB +1.7% +0.8%
api-16 1024 106,273 1467.2% 221MiB +0.8% -11.2%
static 1024 117,660 6007.8% 412MiB ~0% +4.0%
static 4096 116,410 6002.6% 736MiB +1.4% -9.8%
static 6800 116,960 6183.3% 993MiB +1.4% +0.1%
static-tls 1024 94,761 6152.6% 566MiB -0.7% +5.8%
static-tls 4096 94,992 6087.6% 1.3GiB +1.6% ~0%
static-tls 6800 91,158 5726.0% 2.0GiB -0.6% +11.1%
async-db 1024 190,861 4556.9% 383MiB +3.4% -1.8%
crud 4096 365,178 5274.0% 419MiB +0.8% -3.0%
fortunes 1024 74,459 5555.1% 428MiB +1.4% +3.4%
baseline-h2 256 2,720,556 6203.0% 1.1GiB +0.6% ~0%
baseline-h2 1024 2,676,309 6246.5% 2.3GiB +1.3% -20.7%
static-h2 256 72,979 6198.2% 3.4GiB -0.7% -2.9%
static-h2 1024 50,822 5868.3% 7.3GiB -4.0% -18.9%
baseline-h2c 256 3,280,460 6384.2% 1.2GiB -6.1% +21.2%
baseline-h2c 1024 3,329,815 6332.1% 2.7GiB +2.1% ~0%
baseline-h2c 4096 2,399,981 4657.9% 6.2GiB -16.3% -6.1%
json-h2c 1024 841,533 6168.3% 1.9GiB -1.1% -9.5%
json-h2c 4096 702,233 5755.2% 4.1GiB -3.1% ~0%
baseline-h3 64 606,148 6141.3% 1.2GiB -8.8% ~0%
static-h3 64 32,870 5950.2% 1.6GiB -5.5% ~0%
Full log
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
7.
30Stopped all clients for thread #17


finished in 5.01s, 607008.80 req/s, 54.45MB/s
requests: 3035044 total, 3039140 started, 3035044 done, 3035044 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3036803 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 272.24MB (285459994) total, 254.86MB (267241128) headers (space savings 27.87%), 2.90MB (3036831) data
UDP datagram: 542714 sent, 1058206 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      428us     81.34ms      5.20ms    14.71ms    25.79ms     6.52ms      4.68ms    87.92%
connect     :     2.42ms     49.25ms     10.90ms    48.00ms    49.25ms    12.46ms     10.56ms    93.75%
TTFB        :     3.47ms     77.70ms     17.37ms    74.32ms    77.70ms    32.10ms     24.69ms    56.25%
req/s       :    4574.82    12521.11    10048.38   11924.67   12521.11    9483.41     2046.25    73.44%
min RTT     :       20us       162us        48us      125us      162us       55us        27us    84.38%
smoothed RTT:      265us      2.29ms       522us     1.91ms     2.29ms      645us       435us    90.63%
packets sent:       2898       12484        8823      12028      12484    8481.91     2752.10    56.25%
packets recv:       5347       24512       17083      24064      24512   16535.47     5822.52    54.69%
packets lost:          9         174          79        135        174      76.69       40.32    64.06%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6141.3% | Mem 1.2GiB

[run 3/3]
starting benchmark...
.
.
19.
30.
.


TLS Protocol: TLSv1.3
Cipher: Warm-up started for thread #TLS_AES_256_GCM_SHA384
51Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
.
. Stopping all clients.Stopped all clients for thread #14

. Stopping all clients.


finished in 5.01s, 603014.60 req/s, 54.09MB/s
requests: 3015073 total, 3019169 started, 3015073 done, 3015073 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3016685 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 270.43MB (283568902) total, 253.17MB (265471536) headers (space savings 27.87%), 2.88MB (3016722) data
UDP datagram: 499730 sent, 968227 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      434us     58.56ms      5.47ms    13.85ms    23.26ms     6.49ms      4.06ms    83.69%
connect     :     2.73ms     25.23ms      6.66ms    19.65ms    25.23ms     7.99ms      5.08ms    84.38%
TTFB        :     3.88ms     29.44ms     13.52ms    27.87ms    29.44ms    14.76ms      7.67ms    59.38%
req/s       :    5385.60    13907.63     9496.03   13129.77   13907.63    9421.21     2078.62    65.63%
min RTT     :       14us       119us        54us       82us      119us       55us        18us    79.69%
smoothed RTT:      355us      2.37ms       952us     1.78ms     2.37ms     1.00ms       452us    60.94%
packets sent:       3603       13535        7438      12739      13535    7810.28     2666.46    60.94%
packets recv:       6540       26248       14245      25247      26248   15129.53     5604.51    60.94%
packets lost:          1         200          66        161        200      76.34       50.62    60.94%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 6192.5% | Mem 1.6GiB

=== Best: 606148 req/s (CPU: 6141.3%, Mem: 1.2GiB) ===
[info] saved results/baseline-h3/64/oxpecker.json
httparena-bench-oxpecker
httparena-bench-oxpecker

==============================================
=== oxpecker / static-h3 / 64c (tool=h2load-h3) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
.Main benchmark duration is started for thread #55.

.
40.
29.
.Main benchmark duration is started for thread #5.


TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
25. Stopping all clients.

finished in 5.01s, 32286.80 req/s, 880.27MB/s
requests: 161434 total, 165530 started, 161434 done, 161434 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 164682 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 4.30GB (4615152873) total, 20.98MB (21994023) headers (space savings 34.81%), 4.28GB (4590256292) data
UDP datagram: 905030 sent, 3311800 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     1.87ms       1.13s     53.34ms   324.80ms   563.52ms    99.79ms    118.38ms    88.11%
connect     :   969.95ms       1.05s    993.58ms      1.03s      1.05s   998.58ms     20.66ms    67.19%
TTFB        :      1.07s       1.43s       1.16s      1.42s      1.43s      1.23s    137.27ms    46.88%
req/s       :     379.72      649.88      504.44     622.73     649.88     504.43       87.37    53.13%
min RTT     :       23us        75us        55us       68us       75us       54us         9us    71.88%
smoothed RTT:      341us      5.78ms      1.67ms     4.59ms     5.78ms     1.99ms      1.23ms    73.44%
packets sent:       9863       21345       14024      18770      21345   14143.09     3035.57    59.38%
packets recv:      38589       67304       51630      64226      67304   51747.88     9273.84    53.13%
packets lost:          0         172          38        115        172      44.55       36.39    76.56%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 5950.2% | Mem 1.6GiB

[run 2/3]
starting benchmark...
15.
14.
10.Main benchmark duration is started for thread #20.


TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
29Stopped all clients for thread #60
. Stopping all clients.

finished in 5.01s, 24848.00 req/s, 677.47MB/s
requests: 124240 total, 128336 started, 124240 done, 124240 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 128054 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 3.31GB (3551915319) total, 16.31MB (17102030) headers (space savings 34.81%), 3.29GB (3532550545) data
UDP datagram: 769505 sent, 2697830 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     3.35ms    918.21ms     85.69ms   522.36ms   670.26ms   156.10ms    164.65ms    84.21%
connect     :     2.62ms     76.45ms      7.88ms    73.31ms    76.45ms    20.63ms     26.06ms    79.69%
TTFB        :     7.64ms    197.78ms    150.16ms   192.86ms   197.78ms   129.47ms     59.55ms    60.94%
req/s       :     377.57      392.77      388.66     391.77     392.77     388.21        3.12    79.69%
min RTT     :       13us        42us        31us       38us       42us       28us         8us    67.19%
smoothed RTT:      145us       671us       217us      334us      671us      230us        77us    90.63%
packets sent:      10091       13413       12214      13053      13413   12025.52      798.21    68.75%
packets recv:      40270       43241       42286      42950      43241   42154.59      652.92    78.13%
packets lost:          0          23           4         20         23       5.88        5.86    68.75%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 2677.9% | Mem 2.3GiB

[run 3/3]
starting benchmark...
45.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
. Stopping all clients.

finished in 5.01s, 21270.80 req/s, 579.89MB/s
requests: 106354 total, 110450 started, 106354 done, 106354 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 110150 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.83GB (3040267812) total, 14.03MB (14710990) headers (space savings 34.81%), 2.82GB (3023633397) data
UDP datagram: 588553 sent, 2283143 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     8.39ms       1.52s     65.50ms   666.57ms      1.16s   184.99ms    251.29ms    87.00%
connect     :     3.39ms     20.29ms      5.92ms    18.22ms    20.29ms     9.07ms      5.09ms    67.19%
TTFB        :     6.35ms    953.21ms     45.84ms   115.80ms   953.21ms    81.73ms    159.04ms    96.88%
req/s       :     312.54      339.33      334.36     338.95     339.33     332.32        6.69    89.06%
min RTT     :       13us        49us        35us       44us       49us       31us        11us    59.38%
smoothed RTT:      110us       947us       207us      768us      947us      279us       188us    87.50%
packets sent:       6027       11265        9465      11043      11265    9198.14     1374.34    70.31%
packets recv:      32410       37143       36006      37020      37143   35675.11     1195.93    81.25%
packets lost:          0          14           2          9         14       3.58        3.65    81.25%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 1697.1% | Mem 2.9GiB

=== Best: 32870 req/s (CPU: 5950.2%, Mem: 1.6GiB) ===
[info] saved results/static-h3/64/oxpecker.json
httparena-bench-oxpecker
httparena-bench-oxpecker
[info] skip: oxpecker does not subscribe to gateway-64
[info] skip: oxpecker does not subscribe to gateway-h3
[info] skip: oxpecker does not subscribe to production-stack
[info] skip: oxpecker does not subscribe to unary-grpc
[info] skip: oxpecker does not subscribe to unary-grpc-tls
[info] skip: oxpecker does not subscribe to stream-grpc
[info] skip: oxpecker does not subscribe to stream-grpc-tls
[info] skip: oxpecker does not subscribe to echo-ws
[info] skip: oxpecker does not subscribe to echo-ws-pipeline
[info] skip: oxpecker does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/oxpecker.json - 35 new, 35 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536

@Lanayx

Lanayx commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

@MDA2AV Yeah, I've noticed the changes with static files and trying to be compliant with them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants