Skip to content

Update simplew#655

Merged
MDA2AV merged 2 commits intoMDA2AV:mainfrom
stratdev3:update-simplew
Apr 26, 2026
Merged

Update simplew#655
MDA2AV merged 2 commits intoMDA2AV:mainfrom
stratdev3:update-simplew

Conversation

@stratdev3
Copy link
Copy Markdown
Contributor

Description

update simplew


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

Command Description
/benchmark -f <framework> Run all benchmark tests
/benchmark -f <framework> -t <test> Run a specific test
/benchmark -f <framework> --save Run and save results (updates leaderboard on merge)

Always specify -f <framework>. Results are automatically compared against the current leaderboard.


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.

@stratdev3
Copy link
Copy Markdown
Contributor Author

/benchmark -f simplew

@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: simplew | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,926,743 5566.8% 205MiB NEW NEW
baseline 4096 1,893,949 5596.5% 660MiB NEW NEW
pipelined 512 3,374,839 6077.4% 269MiB NEW NEW
pipelined 4096 3,256,948 6118.4% 262MiB NEW NEW
limited-conn 512 873,643 4277.3% 131MiB NEW NEW
limited-conn 4096 882,403 4409.8% 298MiB NEW NEW
json 4096 824,719 5816.2% 324MiB NEW NEW
json-comp 512 470,553 5780.3% 197MiB NEW NEW
json-comp 4096 473,343 5699.5% 361MiB NEW NEW
json-comp 16384 479,161 5672.6% 472MiB NEW NEW
json-tls 4096 566,188 6185.4% 1.1GiB NEW NEW
upload 32 1,806 2960.8% 2.2GiB NEW NEW
upload 256 1,921 6108.5% 6.4GiB NEW NEW
api-4 256 54,455 388.9% 150MiB NEW NEW
api-16 1024 139,088 1556.7% 298MiB NEW NEW
static 1024 71,140 4658.1% 972MiB NEW NEW
static 4096 74,328 5012.9% 1.4GiB NEW NEW
static 6800 77,183 5040.6% 1.9GiB NEW NEW
async-db 1024 176,327 3398.8% 383MiB NEW NEW
crud 4096 425,759 3879.8% 1.1GiB NEW NEW
echo-ws 512 1,921,696 5877.4% 202MiB NEW NEW
echo-ws 4096 1,803,992 6108.4% 596MiB NEW NEW
echo-ws 16384 1,563,205 5662.0% 2.3GiB NEW NEW
Full log
  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    266us    232us    345us   1.25ms   3.22ms

  9564357 frames sent in 5.00s, 9564235 frames received
  Throughput: 1.91M req/s
  Bandwidth:  12.78MB/s
  WS upgrades: 512
  WS frames:   9564235
  Latency samples: 9564191 / 9564235 responses (100.0%)
[info] CPU 5835.3% | Mem 199MiB

=== Best: 1921696 req/s (CPU: 5877.4%, Mem: 202MiB) ===
[info] saved results/echo-ws/512/simplew.json
httparena-bench-simplew
httparena-bench-simplew

==============================================
=== simplew / echo-ws / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.58ms   2.08ms   4.16ms   11.90ms   17.60ms

  7296368 frames sent in 5.00s, 7292699 frames received
  Throughput: 1.46M req/s
  Bandwidth:  9.85MB/s
  WS upgrades: 4096
  WS frames:   7292699
  Latency samples: 7292690 / 7292699 responses (100.0%)
[info] CPU 5541.6% | Mem 469MiB

[run 2/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.14ms   2.02ms   2.72ms   6.75ms   16.20ms

  9023699 frames sent in 5.00s, 9019964 frames received
  Throughput: 1.80M req/s
  Bandwidth:  12.16MB/s
  WS upgrades: 4096
  WS frames:   9019964
  Latency samples: 9019941 / 9019964 responses (100.0%)
[info] CPU 6108.4% | Mem 596MiB

[run 3/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.22ms   1.98ms   3.80ms   7.49ms   12.40ms

  8894874 frames sent in 5.00s, 8891457 frames received
  Throughput: 1.78M req/s
  Bandwidth:  11.98MB/s
  WS upgrades: 4095
  WS frames:   8891457
  Latency samples: 8891442 / 8891457 responses (100.0%)
[info] CPU 5657.3% | Mem 572MiB

=== Best: 1803992 req/s (CPU: 6108.4%, Mem: 596MiB) ===
[info] saved results/echo-ws/4096/simplew.json
httparena-bench-simplew
httparena-bench-simplew

==============================================
=== simplew / echo-ws / 16384c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.63ms   8.86ms   12.10ms   27.60ms   49.50ms

  5977217 frames sent in 5.00s, 5960834 frames received
  Throughput: 1.19M req/s
  Bandwidth:  8.48MB/s
  WS upgrades: 16383
  WS frames:   5960834
  Latency samples: 5960834 / 5960834 responses (100.0%)
[info] CPU 5605.2% | Mem 1.1GiB

[run 2/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.18ms   8.59ms   12.20ms   23.50ms   54.60ms

  7791599 frames sent in 5.00s, 7775215 frames received
  Throughput: 1.55M req/s
  Bandwidth:  10.90MB/s
  WS upgrades: 16384
  WS frames:   7775215
  Latency samples: 7775215 / 7775215 responses (100.0%)
[info] CPU 5899.6% | Mem 1.9GiB

[run 3/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.15ms   8.39ms   11.50ms   20.60ms   86.30ms

  7832411 frames sent in 5.00s, 7816027 frames received
  Throughput: 1.56M req/s
  Bandwidth:  10.95MB/s
  WS upgrades: 16384
  WS frames:   7816027
  Latency samples: 7816027 / 7816027 responses (100.0%)
[info] CPU 5662.0% | Mem 2.3GiB

=== Best: 1563205 req/s (CPU: 5662.0%, Mem: 2.3GiB) ===
[info] saved results/echo-ws/16384/simplew.json
httparena-bench-simplew
httparena-bench-simplew
[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/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@stratdev3 stratdev3 marked this pull request as ready for review April 26, 2026 22:33
@MDA2AV MDA2AV merged commit 68a4de8 into MDA2AV:main Apr 26, 2026
4 checks passed
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