Skip to content

sark: Optimize memory#925

Merged
MDA2AV merged 11 commits into
MDA2AV:mainfrom
inq:dope-mem
Jun 27, 2026
Merged

sark: Optimize memory#925
MDA2AV merged 11 commits into
MDA2AV:mainfrom
inq:dope-mem

Conversation

@inq

@inq inq commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Description

Optimize memory and merges distributed binaries.

Thank you very much!!!


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.

@inq

inq commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 4,013,248 6319.5% 1.1GiB ~0% -60.7%
baseline 4096 4,207,957 6404.6% 1.2GiB +0.9% -60.0%
pipelined 512 40,848,467 6712.6% 1.1GiB +1.5% -60.7%
pipelined 4096 41,233,600 6354.9% 1.2GiB +1.1% -58.6%
limited-conn 512 2,488,319 5955.9% 1.2GiB +1.2% -58.6%
limited-conn 4096 2,691,622 6220.9% 1.2GiB +0.3% -60.0%
json 4096 1,701,956 6637.7% 1.2GiB ~0% -58.6%
json-comp 512 581,088 6075.6% 1.2GiB -1.0% -58.6%
json-comp 4096 634,260 6648.7% 1.2GiB -0.8% -60.0%
json-comp 16384 638,615 6681.5% 1.2GiB -0.9% -61.3%
upload 32 2,723 1960.2% 1.2GiB +3.7% -58.6%
upload 256 2,672 4280.0% 1.2GiB +1.1% -60.0%
api-4 256 69,608 391.1% 161MiB +13.4% -75.5%
api-16 1024 251,114 1591.6% 363MiB +2.0% -55.2%
static 1024 846,808 6660.4% 1.2GiB +0.4% -58.6%
static 4096 760,576 6657.2% 1.3GiB -1.7% -56.7%
static 6800 760,375 6664.5% 1.3GiB -6.6% -58.1%
async-db 1024 343,553 2953.8% 1.2GiB +3.8% -60.0%
crud 4096 549,118 1550.3% 1.3GiB -1.0% -55.2%
fortunes 1024 251,729 5808.2% 1.3GiB -0.9% -56.7%
Full log
[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   7.21ms   7.62ms   11.70ms   19.00ms   61.30ms

  7831673 requests in 15.00s, 7831225 responses
  Throughput: 522.00K req/s
  Bandwidth:  174.74MB/s
  Status codes: 2xx=7831225, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 7831225 / 7831225 responses (100.0%)
  Reconnects: 37143
  Per-template: 409720,427509,423230,420810,423134,422159,410976,390917,383436,380761,370411,362170,358964,359920,359558,358705,379128,400135,397601,391981
  Per-template-ok: 409720,427509,423230,420810,423134,422159,410976,390917,383436,380761,370411,362170,358964,359920,359558,358705,379128,400135,397601,391981
[info] CPU 1478.0% | Mem 1.2GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   6.64ms   7.35ms   11.40ms   17.80ms   22.20ms

  8237157 requests in 15.00s, 8236774 responses
  Throughput: 549.02K req/s
  Bandwidth:  183.74MB/s
  Status codes: 2xx=8236774, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 8236767 / 8236774 responses (100.0%)
  Reconnects: 39251
  Per-template: 424433,445888,444436,441894,438337,435573,433534,421278,407111,404338,402595,392520,381443,376412,377216,379569,396770,414607,410250,408563
  Per-template-ok: 424433,445888,444436,441894,438337,435573,433534,421278,407111,404338,402595,392520,381443,376412,377216,379569,396770,414607,410250,408563
[info] CPU 1550.3% | Mem 1.3GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   6.67ms   7.27ms   11.30ms   17.90ms   22.20ms

  8196430 requests in 15.00s, 8195758 responses
  Throughput: 546.30K req/s
  Bandwidth:  182.31MB/s
  Status codes: 2xx=8195758, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 8195718 / 8195758 responses (100.0%)
  Reconnects: 38999
  Per-template: 422642,442141,440331,437200,435636,434879,432359,424613,410194,400486,399524,387562,379791,375765,375185,374910,389765,413430,411131,408174
  Per-template-ok: 422642,442141,440331,437200,435636,434879,432359,424613,410194,400486,399524,387562,379791,375765,375185,374910,389765,413430,411131,408174
[info] CPU 1488.6% | Mem 1.3GiB

=== Best: 549118 req/s (CPU: 1550.3%, Mem: 1.3GiB) ===
[info] input BW: 47.13MB/s (avg template: 90 bytes)
[info] saved results/crud/4096/sark.json
httparena-bench-sark
httparena-bench-sark

==============================================
=== sark / fortunes / 1024c (tool=gcannon) ===
==============================================
[info] resetting postgres for a clean per-profile baseline
[info] starting postgres sidecar
httparena-postgres
[info] postgres ready (seeded)
[info] waiting for server...
[info] server ready

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   3.70ms   2.86ms   4.88ms   7.53ms   196.20ms

  1025707 requests in 5.00s, 1025707 responses
  Throughput: 205.07K req/s
  Bandwidth:  4.75GB/s
  Status codes: 2xx=1025707, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1025707 / 1025707 responses (100.0%)
[info] CPU 3131.1% | Mem 1.2GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.35ms   2.26ms   3.86ms   5.35ms   6.82ms

  1258646 requests in 5.00s, 1258646 responses
  Throughput: 251.64K req/s
  Bandwidth:  5.83GB/s
  Status codes: 2xx=1258646, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1258635 / 1258646 responses (100.0%)
[info] CPU 5808.2% | Mem 1.3GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   2.77ms   2.68ms   4.50ms   6.41ms   8.25ms

  1168173 requests in 5.00s, 1168173 responses
  Throughput: 233.55K req/s
  Bandwidth:  5.41GB/s
  Status codes: 2xx=1168173, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1168171 / 1168173 responses (100.0%)
[info] CPU 5122.3% | Mem 1.3GiB

=== Best: 251729 req/s (CPU: 5808.2%, Mem: 1.3GiB) ===
[info] saved results/fortunes/1024/sark.json
httparena-bench-sark
httparena-bench-sark
[info] skip: sark does not subscribe to baseline-h2
[info] skip: sark does not subscribe to static-h2
[info] skip: sark does not subscribe to baseline-h2c
[info] skip: sark does not subscribe to json-h2c
[info] skip: sark does not subscribe to baseline-h3
[info] skip: sark does not subscribe to static-h3
[info] skip: sark does not subscribe to gateway-64
[info] skip: sark does not subscribe to gateway-h3
[info] skip: sark does not subscribe to production-stack
[info] skip: sark does not subscribe to unary-grpc
[info] skip: sark does not subscribe to unary-grpc-tls
[info] skip: sark does not subscribe to stream-grpc
[info] skip: sark does not subscribe to stream-grpc-tls
[info] skip: sark does not subscribe to echo-ws
[info] skip: sark does not subscribe to echo-ws-pipeline
[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/fortunes-1024.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/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

@inq

inq commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 4,033,776 6383.7% 1.9GiB +0.4% -32.1%
baseline 4096 4,176,795 6235.9% 2.0GiB +0.2% -33.3%
pipelined 512 39,948,723 6713.5% 1.9GiB -0.7% -32.1%
pipelined 4096 40,931,061 6807.4% 2.0GiB +0.4% -31.0%
limited-conn 512 2,460,420 5981.2% 1.9GiB ~0% -34.5%
limited-conn 4096 2,680,155 6225.2% 2.0GiB -0.1% -33.3%
json 4096 1,715,660 6644.8% 2.0GiB +0.9% -31.0%
json-comp 512 582,586 6072.1% 2.0GiB -0.7% -31.0%
json-comp 4096 642,184 6691.8% 2.0GiB +0.4% -33.3%
json-comp 16384 641,217 6682.5% 2.0GiB -0.5% -35.5%
json-tls 4096 1,909,830 6160.1% 2.4GiB NEW NEW
upload 32 2,720 1996.9% 1.9GiB +3.6% -34.5%
upload 256 2,711 3535.0% 2.0GiB +2.6% -33.3%
api-4 256 61,602 337.3% 548MiB +0.3% -16.7%
api-16 1024 248,778 1470.0% 752MiB +1.1% -7.2%
static 1024 815,966 6676.2% 2.0GiB -3.2% -31.0%
static 4096 788,493 6582.3% 2.0GiB +1.9% -33.3%
static 6800 759,733 6512.9% 2.0GiB -6.7% -35.5%
async-db 1024 339,299 3446.2% 2.0GiB +2.6% -33.3%
crud 4096 552,945 1520.2% 2.0GiB -0.3% -31.0%
fortunes 1024 244,583 5736.6% 2.0GiB -3.7% -33.3%
baseline-h2 256 10,162,206 6240.3% 2.8GiB NEW NEW
baseline-h2 1024 10,388,162 6301.9% 2.9GiB NEW NEW
static-h2 256 203 71.2% 2.1GiB NEW NEW
static-h2 1024 811 86.0% 2.8GiB NEW NEW
baseline-h2c 256 11,499,264 5972.8% 2.7GiB NEW NEW
baseline-h2c 1024 12,008,577 6456.8% 2.7GiB NEW NEW
baseline-h2c 4096 11,917,500 6436.4% 2.8GiB NEW NEW
json-h2c 1024 2,166,619 6600.2% 2.2GiB NEW NEW
json-h2c 4096 1,467,116 6368.4% 2.7GiB NEW NEW
Full log
47
. Stopping all clients.

19. Stopping all clients.

8. Stopping all clients.

finished in 5.05s, 2171066.80 req/s, 7.16GB/s
requests: 10855334 total, 10888102 started, 10855334 done, 10855334 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 10856355 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 35.78GB (38417956864) total, 20.72MB (21724998) headers (space savings 94.73%), 35.58GB (38200762185) data
                     min         max         mean         sd        +/- sd
time for request:      362us     38.49ms     14.59ms      5.21ms    68.62%
time for connect:       19us       888us       385us       202us    58.89%
time to 1st byte:     1.08ms     17.95ms      5.20ms      2.45ms    65.23%
req/s           :    1156.12     5974.43     2120.02      730.12    76.27%
[info] CPU 6568.1% | Mem 2.2GiB

=== Best: 2166619 req/s (CPU: 6600.2%, Mem: 2.2GiB) ===
[info] saved results/json-h2c/1024/sark.json
httparena-bench-sark
httparena-bench-sark

==============================================
=== sark / json-h2c / 4096c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
62Main benchmark duration is started for thread #61.
.
.Main benchmark duration is started for thread #
3.
progress: Warm-up phase is over for thread #49Warm-up phase is over for thread #.
5.
6548% of clients started.

46Warm-up phase is over for thread #.Warm-up phase is over for thread #
151Main benchmark duration is started for thread #46.
.
.

.Main benchmark duration is started for thread #8.

Application protocol: h2c
61Stopped all clients for thread #33
38. Stopping all clients.
17
48
18. Stopping all clients.
59Stopped all clients for thread #. Stopping all clients.29


finished in 5.10s, 995395.60 req/s, 3.28GB/s
requests: 4976978 total, 5108050 started, 4976978 done, 4976978 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 4981074 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 16.39GB (17601101824) total, 9.55MB (10011300) headers (space savings 94.71%), 16.30GB (17501210008) data
                     min         max         mean         sd        +/- sd
time for request:    17.02ms       2.14s    175.04ms    370.82ms    94.08%
time for connect:       16us      6.23ms      2.51ms      1.90ms    55.25%
time to 1st byte:   193.29ms       2.04s       1.60s    273.13ms    81.15%
req/s           :     162.16      322.46      242.92       30.75    66.60%
[info] CPU 2029.1% | Mem 2.6GiB

[run 2/3]
starting benchmark...
progress: Main benchmark duration is started for thread #65% of clients started
.


54.

51Warm-up phase is over for thread #.18Main benchmark duration is started for thread #.
54
.Main benchmark duration is started for thread #20.

26Main benchmark duration is started for thread #58.
.Warm-up phase is over for thread #35.


29Warm-up phase is over for thread #.Main benchmark duration is started for thread #
34.53
.Main benchmark duration is started for thread #29.

.
23.
.

Application protocol: h2c
15. Stopping all clients.
37. Stopping all clients.
51
. Stopping all clients.Main benchmark duration is over for thread #34. Stopping all clients.

27

48. Stopping all clients.

finished in 5.10s, 1438780.00 req/s, 4.74GB/s
requests: 7193900 total, 7324972 started, 7193900 done, 7193900 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 7197996 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 23.70GB (25447186432) total, 13.78MB (14445144) headers (space savings 94.72%), 23.57GB (25302956176) data
                     min         max         mean         sd        +/- sd
time for request:      474us    498.90ms     94.03ms     57.83ms    90.89%
time for connect:       14us      7.18ms      2.52ms      1.91ms    57.52%
time to 1st byte:     3.27ms    423.18ms    229.04ms    109.88ms    64.84%
req/s           :     256.66      509.17      351.12       47.26    69.70%
[info] CPU 6543.6% | Mem 2.6GiB

[run 3/3]
starting benchmark...
61.
36.

53.
Application protocol: h2c
29.
.Main benchmark duration is started for thread #
34.
.Warm-up phase is over for thread #Main benchmark duration is started for thread #10.

18.
47.

.


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

57. Stopping all clients.
. Stopping all clients.


33

finished in 5.10s, 1495639.20 req/s, 4.93GB/s
requests: 7478196 total, 7609268 started, 7478196 done, 7478196 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 7482292 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 24.64GB (26451918848) total, 14.32MB (15013736) headers (space savings 94.72%), 24.50GB (26302002672) data
                     min         max         mean         sd        +/- sd
time for request:      442us    177.41ms     85.10ms     17.84ms    74.69%
time for connect:       16us      7.23ms      2.50ms      1.92ms    56.20%
time to 1st byte:     3.08ms     80.07ms     27.29ms     13.18ms    72.88%
req/s           :     263.98      523.01      365.00       55.35    65.65%
[info] CPU 6368.4% | Mem 2.7GiB

=== Best: 1467116 req/s (CPU: 6368.4%, Mem: 2.7GiB) ===
[info] saved results/json-h2c/4096/sark.json
httparena-bench-sark
httparena-bench-sark
[info] skip: sark does not subscribe to baseline-h3
[info] skip: sark does not subscribe to static-h3
[info] skip: sark does not subscribe to gateway-64
[info] skip: sark does not subscribe to gateway-h3
[info] skip: sark does not subscribe to production-stack
[info] skip: sark does not subscribe to unary-grpc
[info] skip: sark does not subscribe to unary-grpc-tls
[info] skip: sark does not subscribe to stream-grpc
[info] skip: sark does not subscribe to stream-grpc-tls
[info] skip: sark does not subscribe to echo-ws
[info] skip: sark does not subscribe to echo-ws-pipeline
[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/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.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-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.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/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.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

@inq

inq commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 4,020,408 6342.1% 2.0GiB ~0% -28.6%
baseline 4096 4,237,209 6205.5% 2.0GiB +1.6% -33.3%
pipelined 512 40,112,947 6706.3% 2.0GiB -0.3% -28.6%
pipelined 4096 41,252,012 6351.2% 2.0GiB +1.2% -31.0%
limited-conn 512 2,469,946 5990.5% 2.0GiB +0.4% -31.0%
limited-conn 4096 2,679,075 6219.4% 2.0GiB -0.2% -33.3%
json 4096 1,685,119 6647.0% 2.0GiB -0.9% -31.0%
json-comp 512 579,245 6073.1% 2.0GiB -1.3% -31.0%
json-comp 4096 634,866 6506.7% 2.1GiB -0.7% -30.0%
json-comp 16384 634,754 6703.1% 2.1GiB -1.5% -32.3%
json-tls 4096 1,853,701 6297.0% 2.1GiB NEW NEW
upload 32 2,733 1973.2% 2.0GiB +4.1% -31.0%
upload 256 2,732 3524.7% 2.0GiB +3.4% -33.3%
api-4 256 64,352 344.7% 553MiB +4.8% -16.0%
api-16 1024 251,290 1594.2% 767MiB +2.1% -5.3%
static 1024 1,365,321 6439.3% 3.2GiB +61.9% +10.3%
static 4096 1,298,219 6385.3% 3.4GiB +67.7% +13.3%
static 6800 1,213,139 6312.5% 3.5GiB +48.9% +12.9%
async-db 1024 342,759 3477.5% 2.1GiB +3.6% -30.0%
crud 4096 552,163 1577.8% 2.1GiB -0.5% -27.6%
fortunes 1024 246,804 6004.4% 2.1GiB -2.9% -30.0%
baseline-h2 256 10,332,604 6094.1% 2.8GiB NEW NEW
baseline-h2 1024 10,694,881 6298.8% 2.9GiB NEW NEW
static-h2 256 203 68.3% 2.2GiB NEW NEW
static-h2 1024 811 38.2% 2.8GiB NEW NEW
baseline-h2c 256 11,925,149 6109.0% 2.8GiB NEW NEW
baseline-h2c 1024 12,329,584 6435.8% 2.8GiB NEW NEW
baseline-h2c 4096 12,324,165 6426.2% 2.9GiB NEW NEW
json-h2c 1024 2,168,372 6540.4% 2.3GiB NEW NEW
json-h2c 4096 1,463,682 6385.4% 2.8GiB NEW NEW
Full log
Application protocol: h2c
30.


.
29. Stopping all clients.

2Main benchmark duration is over for thread #63. Stopping all clients.
45. Stopping all clients.
63Stopped all clients for thread #31

21. Stopping all clients.
3. Stopping all clients.
26. Stopping all clients.



finished in 5.06s, 2194188.40 req/s, 7.23GB/s
requests: 10970942 total, 11003710 started, 10970942 done, 10970942 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 10971963 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 36.16GB (38826852352) total, 20.94MB (21956214) headers (space savings 94.73%), 35.96GB (38607345503) data
                     min         max         mean         sd        +/- sd
time for request:      404us     32.33ms     14.37ms      5.16ms    65.38%
time for connect:       17us      1.15ms       413us       229us    63.57%
time to 1st byte:     1.17ms     13.19ms      5.26ms      2.55ms    62.79%
req/s           :    1295.51     5979.88     2142.58      799.03    87.50%
[info] CPU 6540.4% | Mem 2.3GiB

=== Best: 2168372 req/s (CPU: 6540.4%, Mem: 2.3GiB) ===
[info] saved results/json-h2c/1024/sark.json
httparena-bench-sark
httparena-bench-sark

==============================================
=== sark / json-h2c / 4096c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
49.

.
12.

56.

59Main benchmark duration is started for thread #42.
.
58.
Application protocol: h2c

13. Stopping all clients.
34
365
. Stopping all clients.
51



finished in 5.11s, 909832.80 req/s, 3.00GB/s
requests: 4549164 total, 4680236 started, 4549164 done, 4549164 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 4553260 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 14.98GB (16086761472) total, 8.73MB (9155672) headers (space savings 94.71%), 14.90GB (15995425936) data
                     min         max         mean         sd        +/- sd
time for request:    15.23ms       2.33s    196.01ms    434.84ms    93.66%
time for connect:       16us      6.97ms      2.33ms      1.74ms    59.64%
time to 1st byte:    72.37ms       2.24s       1.81s    340.28ms    86.99%
req/s           :     155.75      373.18      222.04       42.34    74.44%
[info] CPU 1892.2% | Mem 2.7GiB

[run 2/3]
starting benchmark...
progress: Main benchmark duration is started for thread #468% of clients started
.
1.

.
9.

011Main benchmark duration is started for thread #61.
.
.Main benchmark duration is started for thread #28.
.

Application protocol: Main benchmark duration is started for thread #39.
h2c
17.
. Stopping all clients.
50. Stopping all clients.
50
52. Stopping all clients.
5. Stopping all clients.

41. Stopping all clients.
56

finished in 5.07s, 1433978.00 req/s, 4.72GB/s
requests: 7169890 total, 7300962 started, 7169890 done, 7169890 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 7173986 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 23.62GB (25360777216) total, 13.73MB (14397124) headers (space savings 94.72%), 23.49GB (25217027160) data
                     min         max         mean         sd        +/- sd
time for request:     1.86ms    547.10ms     94.82ms     61.76ms    92.72%
time for connect:       13us      6.40ms      2.47ms      1.80ms    55.71%
time to 1st byte:     7.17ms    470.64ms    262.57ms    112.12ms    66.24%
req/s           :     273.16      580.54      349.95       48.40    69.36%
[info] CPU 6540.8% | Mem 2.7GiB

[run 3/3]
starting benchmark...
Application protocol: h2c
.

.
.
54


.

22.
32. Stopping all clients.
19Main benchmark duration is over for thread #36. Stopping all clients.

59Stopped all clients for thread #. Stopping all clients.Stopped all clients for thread #51

36
29. Stopping all clients.
44Main benchmark duration is over for thread #
31. Stopping all clients.

. Stopping all clients.

. Stopping all clients.Stopped all clients for thread #5


finished in 5.09s, 1489209.20 req/s, 4.91GB/s
requests: 7446046 total, 7577118 started, 7446046 done, 7446046 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 7450142 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 24.53GB (26340392960) total, 14.26MB (14949436) headers (space savings 94.72%), 24.39GB (26191119784) data
                     min         max         mean         sd        +/- sd
time for request:      604us    157.82ms     85.53ms     15.32ms    74.15%
time for connect:       17us      6.54ms      2.52ms      1.84ms    56.37%
time to 1st byte:     3.22ms     59.01ms     27.09ms      9.81ms    66.33%
req/s           :     285.12      515.88      363.43       44.95    72.71%
[info] CPU 6385.4% | Mem 2.8GiB

=== Best: 1463682 req/s (CPU: 6385.4%, Mem: 2.8GiB) ===
[info] saved results/json-h2c/4096/sark.json
httparena-bench-sark
httparena-bench-sark
[info] skip: sark does not subscribe to baseline-h3
[info] skip: sark does not subscribe to static-h3
[info] skip: sark does not subscribe to gateway-64
[info] skip: sark does not subscribe to gateway-h3
[info] skip: sark does not subscribe to production-stack
[info] skip: sark does not subscribe to unary-grpc
[info] skip: sark does not subscribe to unary-grpc-tls
[info] skip: sark does not subscribe to stream-grpc
[info] skip: sark does not subscribe to stream-grpc-tls
[info] skip: sark does not subscribe to echo-ws
[info] skip: sark does not subscribe to echo-ws-pipeline
[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/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.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-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.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/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.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

@inq

inq commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-h3

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline-h3 64 43,244 32.8% 412MiB NEW NEW
static-h3 64 5,250 98.9% 445MiB NEW NEW
Full log
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 48.3% | Mem 438MiB

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

.
TLS Protocol: Warm-up started for thread #TLSv1.3
Cipher: 41TLS_AES_128_GCM_SHA256.

Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
54. Stopping all clients.
. Stopping all clients.

. Stopping all clients.
37. Stopping all clients.
. Stopping all clients.

. Stopping all clients.

finished in 5.01s, 43244.60 req/s, 506.86KB/s
requests: 216223 total, 220319 started, 216223 done, 216223 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 216223 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.47MB (2595124) total, 1.44MB (1513561) headers (space savings 85.11%), 211.16KB (216223) data
UDP datagram: 17484 sent, 10858 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      623us     91.64ms     35.14ms    37.34ms    46.99ms    34.05ms      6.13ms    90.92%
connect     :     4.06ms     12.24ms      9.60ms    12.08ms    12.24ms     8.67ms      2.44ms    60.94%
TTFB        :    14.73ms     47.88ms     45.04ms    47.57ms    47.88ms    36.57ms     10.54ms    84.38%
req/s       :     636.19      810.70      670.54     737.87     810.70     675.53       30.99    79.69%
min RTT     :      532us     11.63ms      6.77ms    11.23ms    11.63ms     7.08ms      2.87ms    62.50%
smoothed RTT:     2.26ms     35.47ms     30.75ms    34.82ms    35.47ms    27.29ms      8.73ms    79.69%
packets sent:        273         277         275        277        277     275.19        1.07    67.19%
packets recv:        162         194         168        181        194     169.66        6.20    81.25%
packets lost:          0           4           0          4          4       0.80        1.57    81.25%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 35.4% | Mem 462MiB

=== Best: 43244 req/s (CPU: 32.8%, Mem: 412MiB) ===
[info] saved results/baseline-h3/64/sark-h3.json
httparena-bench-sark-h3
httparena-bench-sark-h3

==============================================
=== sark-h3 / 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 #58.

39.
.Main benchmark duration is started for thread #Warm-up started for thread #31.

29.

57.
7.
47Warm-up started for thread #.48.

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
43. Stopping all clients.
. Stopping all clients.

19Stopped all clients for thread #25
. Stopping all clients.
4Stopped all clients for thread #16


48. Stopping all clients.

finished in 5.01s, 5257.00 req/s, 82.12MB/s
requests: 26285 total, 30381 started, 26285 done, 26285 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 26307 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 410.62MB (430564016) total, 468.25KB (479485) headers (space savings 73.40%), 410.02MB (429936694) data
UDP datagram: 205065 sent, 385338 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     7.44ms       3.92s    231.71ms      1.03s      2.28s   388.02ms    421.04ms    92.30%
connect     :     2.27ms     35.53ms     32.84ms    34.98ms    35.53ms    24.70ms     12.39ms    81.25%
TTFB        :    18.69ms    102.58ms     84.95ms   100.68ms   102.58ms    71.78ms     24.06ms    64.06%
req/s       :      22.79      212.79       38.79     203.99     212.79      82.13       66.64    79.69%
min RTT     :        0us      1.03ms       466us      838us     1.03ms      503us       201us    78.13%
smoothed RTT:      535us    333.00ms      1.95ms     4.37ms   333.00ms    12.13ms     58.10ms    96.88%
packets sent:        946        8005        1569       7621       8005    3206.14     2461.87    79.69%
packets recv:       1644       15458        2753      14672      15458    6020.91     4812.27    79.69%
packets lost:         49         214          73        204        214     107.17       55.00    75.00%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 98.9% | Mem 445MiB

[run 2/3]
starting benchmark...


.

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
9. Stopping all clients.
20. Stopping all clients.
10. Stopping all clients.

55. Stopping all clients.
51. Stopping all clients.

finished in 5.01s, 4691.80 req/s, 73.11MB/s
requests: 23459 total, 27555 started, 23459 done, 23459 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 23459 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 365.57MB (383327672) total, 415.76KB (425735) headers (space savings 73.50%), 365.04MB (382770092) data
UDP datagram: 182153 sent, 343634 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    11.35ms       4.07s    242.49ms      1.16s      2.54s   402.44ms    489.51ms    93.37%
connect     :     3.09ms     28.67ms     12.67ms    28.16ms    28.67ms    12.43ms      8.49ms    70.31%
TTFB        :    15.63ms     77.53ms     59.47ms    76.94ms    77.53ms    49.98ms     19.43ms    73.44%
req/s       :      24.59      339.95       41.79     256.75     339.95      73.29       71.24    85.94%
min RTT     :        0us      1.05ms       459us     1.02ms     1.05ms      491us       240us    79.69%
smoothed RTT:      394us    333.00ms      1.90ms   333.00ms   333.00ms    27.62ms     89.61ms    92.19%
packets sent:        981       12515        1649       9470      12515    2848.14     2601.45    85.94%
packets recv:       1732       24413        3026      18397      24413    5369.28     5144.18    85.94%
packets lost:         49         222          75        195        222      93.80       42.64    79.69%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 98.5% | Mem 480MiB

[run 3/3]
starting benchmark...
54.
.46.

2.
61.
.

59.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
42. Stopping all clients.
41. Stopping all clients.

finished in 5.01s, 5064.40 req/s, 78.79MB/s
requests: 25322 total, 29418 started, 25322 done, 25322 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 25331 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 393.96MB (413101675) total, 450.63KB (461447) headers (space savings 73.38%), 393.39MB (412497909) data
UDP datagram: 202697 sent, 371550 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     8.67ms       4.35s    357.14ms   910.17ms      3.07s   472.11ms    497.10ms    95.26%
connect     :     3.35ms     26.14ms      9.52ms    25.83ms    26.14ms    13.28ms      8.88ms    54.69%
TTFB        :    12.03ms     73.75ms     49.89ms    73.27ms    73.75ms    48.60ms     15.97ms    53.13%
req/s       :      31.79      162.97       66.08     148.57     162.97      79.12       35.53    78.13%
min RTT     :        0us      1.25ms       597us     1.06ms     1.25ms      618us       219us    81.25%
smoothed RTT:      526us    333.00ms      1.12ms     2.41ms   333.00ms     6.40ms     41.48ms    98.44%
packets sent:       1309        6234        2747       5834       6234    3169.14     1332.68    75.00%
packets recv:       2283       11817        4898      10968      11817    5805.47     2595.40    78.13%
packets lost:         66         189         112        177        189     120.67       31.50    67.19%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 100.1% | Mem 500MiB

=== Best: 5250 req/s (CPU: 98.9%, Mem: 445MiB) ===
[info] saved results/static-h3/64/sark-h3.json
httparena-bench-sark-h3
httparena-bench-sark-h3
[info] skip: sark-h3 does not subscribe to gateway-64
[info] skip: sark-h3 does not subscribe to gateway-h3
[info] skip: sark-h3 does not subscribe to production-stack
[info] skip: sark-h3 does not subscribe to unary-grpc
[info] skip: sark-h3 does not subscribe to unary-grpc-tls
[info] skip: sark-h3 does not subscribe to stream-grpc
[info] skip: sark-h3 does not subscribe to stream-grpc-tls
[info] skip: sark-h3 does not subscribe to echo-ws
[info] skip: sark-h3 does not subscribe to echo-ws-pipeline
[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/baseline-h3-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h3-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@inq

inq commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark --save

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 3,986,715 6335.9% 1.1GiB -0.8% -60.7%
baseline 4096 4,199,582 6227.0% 1.2GiB +0.7% -60.0%
pipelined 512 40,074,710 6723.3% 1.1GiB -0.4% -60.7%
pipelined 4096 40,880,271 6757.4% 1.2GiB +0.3% -58.6%
limited-conn 512 2,443,440 5996.1% 1.3GiB -0.7% -55.2%
limited-conn 4096 2,681,484 6238.1% 1.3GiB ~0% -56.7%
json 4096 1,811,202 6609.5% 1.3GiB +6.5% -55.2%
json-comp 512 605,170 6105.9% 1.3GiB +3.2% -55.2%
json-comp 4096 659,614 6508.4% 1.3GiB +3.2% -56.7%
json-comp 16384 664,500 6437.0% 1.3GiB +3.1% -58.1%
json-tls 4096 1,826,163 5916.6% 1.3GiB NEW NEW
upload 32 2,728 1964.5% 1.1GiB +3.9% -62.1%
upload 256 2,666 5446.5% 1.2GiB +0.9% -60.0%
api-4 256 67,558 349.4% 182MiB +10.0% -72.3%
api-16 1024 255,698 1599.2% 398MiB +3.9% -50.9%
static 1024 1,360,501 6454.6% 2.4GiB +61.4% -17.2%
static 4096 1,294,519 6415.6% 2.5GiB +67.2% -16.7%
static 6800 1,216,867 6294.9% 2.6GiB +49.4% -16.1%
async-db 1024 346,276 3522.6% 1.4GiB +4.7% -53.3%
crud 4096 548,026 1523.9% 1.3GiB -1.2% -55.2%
fortunes 1024 246,536 5910.7% 1.2GiB -3.0% -60.0%
baseline-h2 256 10,355,873 5585.1% 1.1GiB NEW NEW
baseline-h2 1024 10,509,503 5919.4% 1.3GiB NEW NEW
static-h2 256 769,518 6327.1% 1.5GiB NEW NEW
static-h2 1024 817,307 5575.1% 2.0GiB NEW NEW
baseline-h2c 256 11,825,268 5936.0% 1.1GiB NEW NEW
baseline-h2c 1024 12,533,900 6444.9% 1.1GiB NEW NEW
baseline-h2c 4096 12,340,650 6308.1% 1.3GiB NEW NEW
json-h2c 1024 3,243,287 6556.1% 1.3GiB NEW NEW
json-h2c 4096 1,975,371 6514.2% 1.9GiB NEW NEW
unary-grpc 256 370,563 250.5% 1.1GiB NEW NEW
unary-grpc 1024 1,473,467 1093.3% 1.2GiB NEW NEW
unary-grpc-tls 256 5,738,290 5897.6% 1.1GiB NEW NEW
unary-grpc-tls 1024 5,794,812 6295.2% 1.3GiB NEW NEW
stream-grpc 64 9,917,000 91.2% 1.1GiB NEW NEW
stream-grpc-tls 64 9,547,000 91.6% 1.1GiB NEW NEW
echo-ws 512 4,179,366 6316.3% 1.1GiB NEW NEW
echo-ws 4096 4,394,447 6257.3% 1.2GiB NEW NEW
echo-ws 16384 4,079,554 6377.9% 1.6GiB NEW NEW
echo-ws-pipeline 512 63,019,270 6366.9% 1.1GiB NEW NEW
echo-ws-pipeline 4096 64,629,072 6254.4% 1.2GiB NEW NEW
echo-ws-pipeline 16384 60,951,628 6385.8% 1.6GiB NEW NEW
Full log
==============================================
[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:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.48ms   1.41ms   1.78ms   2.15ms   6.65ms

  202097456 frames sent in 5.00s, 202032720 frames received
  Throughput: 40.40M req/s
  Bandwidth:  269.77MB/s
  WS upgrades: 4096
  WS frames:   202032720
  Latency samples: 202032720 / 202032720 responses (100.0%)
[info] CPU 3089.0% | Mem 1.2GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.02ms   1.02ms   1.23ms   1.35ms   1.94ms

  322130816 frames sent in 5.00s, 322100112 frames received
  Throughput: 64.39M req/s
  Bandwidth:  429.86MB/s
  WS upgrades: 4096
  WS frames:   322100112
  Latency samples: 322100112 / 322100112 responses (100.0%)
[info] CPU 6411.6% | Mem 1.2GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.01ms   1.02ms   1.19ms   1.32ms   1.72ms

  323149856 frames sent in 5.00s, 323145360 frames received
  Throughput: 64.61M req/s
  Bandwidth:  431.34MB/s
  WS upgrades: 4096
  WS frames:   323145360
  Latency samples: 323182176 / 323145360 responses (100.0%)
[info] CPU 6254.4% | Mem 1.2GiB

=== Best: 64629072 req/s (CPU: 6254.4%, Mem: 1.2GiB) ===
[info] saved results/echo-ws-pipeline/4096/sark.json
httparena-bench-sark
httparena-bench-sark

==============================================
=== sark / echo-ws-pipeline / 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:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   5.64ms   5.29ms   7.02ms   7.71ms   8.45ms

  208818131 frames sent in 5.00s, 208556067 frames received
  Throughput: 41.70M req/s
  Bandwidth:  278.79MB/s
  WS upgrades: 16380
  WS frames:   208556067
  Latency samples: 208556067 / 208556067 responses (100.0%)
[info] CPU 3562.2% | Mem 1.5GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.26ms   4.27ms   4.65ms   4.92ms   7.31ms

  305020272 frames sent in 5.00s, 304758144 frames received
  Throughput: 60.93M req/s
  Bandwidth:  407.14MB/s
  WS upgrades: 16383
  WS frames:   304758144
  Latency samples: 304758144 / 304758144 responses (100.0%)
[info] CPU 6385.8% | Mem 1.6GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.26ms   4.24ms   4.71ms   5.17ms   5.48ms

  304925808 frames sent in 5.00s, 304663664 frames received
  Throughput: 60.91M req/s
  Bandwidth:  407.02MB/s
  WS upgrades: 16384
  WS frames:   304663664
  Latency samples: 304663664 / 304663664 responses (100.0%)
[info] CPU 6122.4% | Mem 1.7GiB

=== Best: 60951628 req/s (CPU: 6385.8%, Mem: 1.6GiB) ===
[info] saved results/echo-ws-pipeline/16384/sark.json
httparena-bench-sark
httparena-bench-sark
[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/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.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/echo-ws-pipeline-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-pipeline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-pipeline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.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-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.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/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/stream-grpc-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/stream-grpc-tls-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-tls-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-tls-256.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

@inq inq marked this pull request as ready for review June 26, 2026 22:49
@inq inq requested a review from MDA2AV as a code owner June 26, 2026 22:49
@MDA2AV MDA2AV merged commit 91e8910 into MDA2AV:main Jun 27, 2026
MDA2AV added a commit that referenced this pull request Jun 27, 2026
Resolve scripts/validate.sh conflict: keep PR #930's new orchestrator and
port the #925 SKIP-on-missing-meta change (FAIL/exit 1 -> SKIP/exit 0) into
lib/validate/setup.sh so it isn't regressed by the refactor.
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