Skip to content

test#257

Merged
MDA2AV merged 3 commits intomainfrom
test/u2
Mar 29, 2026
Merged

test#257
MDA2AV merged 3 commits intomainfrom
test/u2

Conversation

@MDA2AV
Copy link
Copy Markdown
Owner

@MDA2AV MDA2AV commented Mar 29, 2026

Description


PR Commands — comment on this PR to trigger:

Command Description
/validate Run the 18-point validation suite
/validate -f <framework> Validate a specific framework
/benchmark Run all benchmark tests
/benchmark -t baseline Run a specific test
/benchmark -f <framework> -t <test> Run a specific framework and test
/benchmark --save Run and save results (updates leaderboard on merge)

Results are automatically compared against the current leaderboard.

@MDA2AV
Copy link
Copy Markdown
Owner Author

MDA2AV commented Mar 29, 2026

/benchmark -f uwebsockets -t baseline --save

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Benchmark run triggered for uwebsockets (test: baseline) with --save. Results will be posted here when done.

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: uwebsockets | Test: baseline

uwebsockets / baseline / 512c (p=1, r=0, cpu=64)
  Best: 2304449 req/s (CPU: 6603.5%, Mem: 841.2MiB) ===

uwebsockets / baseline / 4096c (p=1, r=0, cpu=64)
  Best: 2374553 req/s (CPU: 6370.7%, Mem: 816.3MiB) ===

uwebsockets / baseline / 16384c (p=1, r=0, cpu=64)
  Best: 2279023 req/s (CPU: 6489.4%, Mem: 924.2MiB) ===

Comparison with main

baseline

Metric 16384c 4096c 512c
RPS 2.28M ~0% 2.37M ~0% 2.30M ~0%
p99 13.60ms ~0% 3.66ms ~0% 596us ~0%
CPU 6489% ~0% 6371% ~0% 6604% ~0%
Memory 924MB ~0% 816MB ~0% 841MB ~0%
Full log
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    224us    204us    365us    596us    809us

  11382727 requests in 5.00s, 11382726 responses
  Throughput: 2.28M req/s
  Bandwidth:  306.02MB/s
  Status codes: 2xx=11382726, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11382661 / 11382726 responses (100.0%)
  Per-template: 4109912,3668292,3604457
  Per-template-ok: 4109912,3668292,3604457
  CPU: 6497.6% | Mem: 860.9MiB

=== Best: 2304449 req/s (CPU: 6603.5%, Mem: 841.2MiB) ===
  Input BW: 178.01MB/s (avg template: 81 bytes)
[saved] results/baseline/512/uwebsockets.json
[saved] site/static/logs/baseline/512/uwebsockets.log
httparena-bench-uwebsockets
httparena-bench-uwebsockets

==============================================
=== uwebsockets / baseline / 4096c (p=1, r=0, cpu=64) ===
==============================================
7636677d0aaa620fb5011c1786c89bcad4c06c0066425fe135b1f28847f1d8f7
[wait] Waiting for server...
[ready] Server is up

[run 1/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.72ms   1.64ms   2.13ms   3.66ms   5.48ms

  11874558 requests in 5.00s, 11872765 responses
  Throughput: 2.37M req/s
  Bandwidth:  319.11MB/s
  Status codes: 2xx=11872765, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11872731 / 11872765 responses (100.0%)
  Per-template: 3983481,3931786,3957464
  Per-template-ok: 3983481,3931786,3957464
  CPU: 6370.7% | Mem: 816.3MiB

[run 2/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.73ms   1.68ms   2.10ms   3.60ms   4.52ms

  11856761 requests in 5.00s, 11856625 responses
  Throughput: 2.37M req/s
  Bandwidth:  318.74MB/s
  Status codes: 2xx=11856625, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11856594 / 11856625 responses (100.0%)
  Per-template: 3958638,3955692,3942263
  Per-template-ok: 3958638,3955691,3942263
  CPU: 6520.6% | Mem: 823.7MiB

[run 3/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.73ms   1.68ms   2.05ms   3.58ms   4.44ms

  11869193 requests in 5.00s, 11869192 responses
  Throughput: 2.37M req/s
  Bandwidth:  319.10MB/s
  Status codes: 2xx=11869192, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11869155 / 11869192 responses (100.0%)
  Per-template: 3969095,3942556,3957504
  Per-template-ok: 3969095,3942556,3957504
  CPU: 6380.5% | Mem: 844.9MiB

=== Best: 2374553 req/s (CPU: 6370.7%, Mem: 816.3MiB) ===
  Input BW: 183.43MB/s (avg template: 81 bytes)
[saved] results/baseline/4096/uwebsockets.json
[saved] site/static/logs/baseline/4096/uwebsockets.log
httparena-bench-uwebsockets
httparena-bench-uwebsockets

==============================================
=== uwebsockets / baseline / 16384c (p=1, r=0, cpu=64) ===
==============================================
5798805c706441ddaca5931c5252fb4b78d6388edbc5546e87e1fcb1d2e810a4
[wait] Waiting for server...
[ready] Server is up

[run 1/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   7.32ms   6.95ms   8.09ms   13.70ms   117.80ms

  10969634 requests in 5.00s, 10953250 responses
  Throughput: 2.19M req/s
  Bandwidth:  294.44MB/s
  Status codes: 2xx=10953250, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 10953250 / 10953250 responses (100.0%)
  Per-template: 3655849,3647847,3649554
  Per-template-ok: 3655849,3647847,3649554
  CPU: 5871.5% | Mem: 925.5MiB

[run 2/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   7.02ms   6.83ms   8.28ms   13.60ms   16.80ms

  11411243 requests in 5.00s, 11395115 responses
  Throughput: 2.28M req/s
  Bandwidth:  306.26MB/s
  Status codes: 2xx=11395115, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11395115 / 11395115 responses (100.0%)
  Per-template: 3806491,3796040,3792584
  Per-template-ok: 3806491,3796040,3792584
  CPU: 6489.4% | Mem: 924.2MiB

[run 3/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   7.04ms   6.94ms   8.11ms   13.20ms   16.20ms

  11328859 requests in 5.00s, 11312515 responses
  Throughput: 2.26M req/s
  Bandwidth:  304.09MB/s
  Status codes: 2xx=11312515, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 11312515 / 11312515 responses (100.0%)
  Per-template: 3771348,3771773,3769394
  Per-template-ok: 3771348,3771773,3769394
  CPU: 6218.9% | Mem: 930.1MiB

=== Best: 2279023 req/s (CPU: 6489.4%, Mem: 924.2MiB) ===
  Input BW: 176.05MB/s (avg template: 81 bytes)
[saved] results/baseline/16384/uwebsockets.json
[saved] site/static/logs/baseline/16384/uwebsockets.log
httparena-bench-uwebsockets
httparena-bench-uwebsockets
[updated] site/data/frameworks.json
[updated] site/data/baseline-16384.json
[updated] site/data/baseline-4096.json
[updated] site/data/baseline-512.json
[updated] site/data/current.json
[restore] Restoring CPU governor to performance...

@MDA2AV
Copy link
Copy Markdown
Owner Author

MDA2AV commented Mar 29, 2026

/benchmark -f uwebsockets --save

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Benchmark run triggered for uwebsockets (all tests) with --save. Results will be posted here when done.

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: uwebsockets | Test: all tests

uwebsockets / baseline / 512c (p=1, r=0, cpu=64)
  Best: 2307758 req/s (CPU: 6578.0%, Mem: 834.1MiB) ===

uwebsockets / baseline / 4096c (p=1, r=0, cpu=64)
  Best: 2370163 req/s (CPU: 6412.2%, Mem: 848.0MiB) ===

uwebsockets / baseline / 16384c (p=1, r=0, cpu=64)
  Best: 2275226 req/s (CPU: 6243.0%, Mem: 927.9MiB) ===

uwebsockets / pipelined / 512c (p=16, r=0, cpu=unlimited)
  Best: 17977964 req/s (CPU: 8553.6%, Mem: 1.3GiB) ===

uwebsockets / pipelined / 4096c (p=16, r=0, cpu=unlimited)
  Best: 20109378 req/s (CPU: 9340.2%, Mem: 1.4GiB) ===

uwebsockets / pipelined / 16384c (p=16, r=0, cpu=unlimited)
  Best: 19157448 req/s (CPU: 8622.3%, Mem: 1.5GiB) ===

uwebsockets / limited-conn / 512c (p=1, r=10, cpu=unlimited)
  Best: 1315508 req/s (CPU: 5871.7%, Mem: 1.5GiB) ===

uwebsockets / limited-conn / 4096c (p=1, r=10, cpu=unlimited)
  Best: 1767215 req/s (CPU: 6604.8%, Mem: 1.5GiB) ===

Comparison with main

baseline

Metric 16384c 4096c 512c
RPS 2.28M ~0% 2.37M ~0% 2.31M ~0%
p99 13.20ms ~0% 3.60ms ~0% 608us ~0%
CPU 6243% ~0% 6412% ~0% 6578% ~0%
Memory 928MB ~0% 848MB ~0% 834MB ~0%

limited-conn

Metric 4096c 512c
RPS 1.77M ~0% 1.32M ~0%
p99 13.50ms ~0% 2.26ms ~0%
CPU 6605% ~0% 5872% ~0%
Memory 1536MB ~0% 1536MB ~0%

pipelined

Metric 16384c 4096c 512c
RPS 19.16M ~0% 20.11M ~0% 17.98M ~0%
p99 53.40ms ~0% 12.20ms ~0% 2.36ms ~0%
CPU 8622% ~0% 9340% ~0% 8554% ~0%
Memory 1536MB ~0% 1434MB ~0% 1331MB ~0%
Full log
==============================================
05ffda9a6f8e5a885ecd609eeb7e0b75a75be3975b735bc1bf735bda23e92c80
[wait] Waiting for server...
[ready] Server is up

[run 1/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     512 (8/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    372us    221us    829us   2.26ms   4.17ms

  6500803 requests in 5.00s, 6500802 responses
  Throughput: 1.30M req/s
  Bandwidth:  174.78MB/s
  Status codes: 2xx=6500802, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6500779 / 6500802 responses (100.0%)
  Reconnects: 650089
  Per-template: 2167040,2166965,2166774
  Per-template-ok: 2167040,2166965,2166774
  CPU: 6006.0% | Mem: 1.5GiB

[run 2/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     512 (8/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    368us    219us    819us   2.25ms   4.16ms

  6556260 requests in 5.00s, 6556243 responses
  Throughput: 1.31M req/s
  Bandwidth:  176.24MB/s
  Status codes: 2xx=6556243, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6556219 / 6556243 responses (100.0%)
  Reconnects: 655626
  Per-template: 2185536,2185371,2185312
  Per-template-ok: 2185536,2185371,2185312
  CPU: 5895.3% | Mem: 1.5GiB

[run 3/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     512 (8/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    367us    219us    813us   2.26ms   4.15ms

  6577548 requests in 5.00s, 6577542 responses
  Throughput: 1.32M req/s
  Bandwidth:  176.83MB/s
  Status codes: 2xx=6577542, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6577504 / 6577542 responses (100.0%)
  Reconnects: 657756
  Per-template: 2192517,2192596,2192391
  Per-template-ok: 2192517,2192596,2192391
  CPU: 5871.7% | Mem: 1.5GiB

=== Best: 1315508 req/s (CPU: 5871.7%, Mem: 1.5GiB) ===
  Input BW: 101.62MB/s (avg template: 81 bytes)
[saved] results/limited-conn/512/uwebsockets.json
[saved] site/static/logs/limited-conn/512/uwebsockets.log
httparena-bench-uwebsockets
httparena-bench-uwebsockets

==============================================
=== uwebsockets / limited-conn / 4096c (p=1, r=10, cpu=unlimited) ===
==============================================
d08c10d1a38aecde80fe2f58dadf8678c2814c475dfc2ef9b30d14fff762b489
[wait] Waiting for server...
[ready] Server is up

[run 1/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.26ms   1.18ms   5.06ms   13.50ms   31.20ms

  8765255 requests in 5.00s, 8764682 responses
  Throughput: 1.75M req/s
  Bandwidth:  235.48MB/s
  Status codes: 2xx=8764682, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 8764656 / 8764682 responses (100.0%)
  Reconnects: 876273
  Per-template: 2921423,2921802,2921431
  Per-template-ok: 2921423,2921802,2921430
  CPU: 6493.6% | Mem: 1.5GiB

[run 2/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.23ms   1.15ms   5.09ms   13.50ms   28.50ms

  8854960 requests in 5.01s, 8853751 responses
  Throughput: 1.77M req/s
  Bandwidth:  237.83MB/s
  Status codes: 2xx=8853751, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 8853726 / 8853751 responses (100.0%)
  Reconnects: 884996
  Per-template: 2951060,2951343,2951323
  Per-template-ok: 2951060,2951343,2951323
  CPU: 6604.8% | Mem: 1.5GiB

[run 3/3]
gcannon — io_uring HTTP load generator
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.24ms   1.16ms   5.09ms   13.40ms   29.40ms

  8826911 requests in 5.00s, 8825129 responses
  Throughput: 1.76M req/s
  Bandwidth:  237.20MB/s
  Status codes: 2xx=8825129, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 8825097 / 8825129 responses (100.0%)
  Reconnects: 881499
  Per-template: 2941690,2941777,2941629
  Per-template-ok: 2941690,2941777,2941628
  CPU: 6290.9% | Mem: 1.6GiB

=== Best: 1767215 req/s (CPU: 6604.8%, Mem: 1.5GiB) ===
  Input BW: 136.51MB/s (avg template: 81 bytes)
[saved] results/limited-conn/4096/uwebsockets.json
[saved] site/static/logs/limited-conn/4096/uwebsockets.log
httparena-bench-uwebsockets
httparena-bench-uwebsockets
[skip] uwebsockets does not subscribe to json
[skip] uwebsockets does not subscribe to upload
[skip] uwebsockets does not subscribe to compression
[skip] uwebsockets does not subscribe to noisy
[skip] uwebsockets does not subscribe to mixed
[skip] uwebsockets does not subscribe to static
[skip] uwebsockets does not subscribe to async-db
[skip] uwebsockets does not subscribe to baseline-h2
[skip] uwebsockets does not subscribe to static-h2
[skip] uwebsockets does not subscribe to baseline-h3
[skip] uwebsockets does not subscribe to static-h3
[skip] uwebsockets does not subscribe to unary-grpc
[skip] uwebsockets does not subscribe to unary-grpc-tls
[skip] uwebsockets does not subscribe to echo-ws
[updated] site/data/frameworks.json
[updated] site/data/baseline-16384.json
[updated] site/data/baseline-4096.json
[updated] site/data/baseline-512.json
[updated] site/data/limited-conn-4096.json
[updated] site/data/limited-conn-512.json
[updated] site/data/pipelined-16384.json
[updated] site/data/pipelined-4096.json
[updated] site/data/pipelined-512.json
[updated] site/data/current.json
[restore] Restoring CPU governor to performance...

@MDA2AV MDA2AV merged commit d82da2d into main Mar 29, 2026
@MDA2AV MDA2AV deleted the test/u2 branch March 29, 2026 18:04
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