Skip to content

hical: pin HICAL_REF to 2a45016 (latest main) + trigger re-benchmark#1057

Open
Hical61 wants to merge 3 commits into
MDA2AV:mainfrom
Hical61:feat/hical-update-commit
Open

hical: pin HICAL_REF to 2a45016 (latest main) + trigger re-benchmark#1057
Hical61 wants to merge 3 commits into
MDA2AV:mainfrom
Hical61:feat/hical-update-commit

Conversation

@Hical61

@Hical61 Hical61 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Description

Pin HICAL_REF from main to commit 2a45016, ensuring reproducible builds.

Since the initial PR (#864, Jun 13), Hical's main branch has accumulated 41 commits, including performance-relevant changes:

  • 6062f54 perf: optimistic sync write + early readBuf release (throughput improvement under high concurrency)
  • 633d181 perf: speculative read on stack buffer, eliminating ~20k unnecessary epoll_ctl calls
  • 0894b2b perf: idempotent preparePayload + WebSocket frame buffer reuse (P99 latency improvement)
  • 7416731 perf: ChunkedBody/SSE/Gzip compression optimizations
  • 06a4768 feat: PerfectHashRouter — compile-time perfect hash for static route lookup
  • 071ce4c feat: GzipCompression middleware (v2.6.6, enables json-comp)

Changes

  • frameworks/hical/Dockerfile: Switch from git clone --branch main to git init + fetch + checkout FETCH_HEAD, pinning HICAL_REF to 2a45016bbdcbf3dd93838beaf058e109f3f5dbfd

Trigger re-benchmark to reflect the latest code on the leaderboard.


/benchmark -f hical --save

@Hical61 Hical61 changed the title hical: pin HICAL_REF to latest main (2a45016) + trigger re-benchmark hical: pin HICAL_REF to 2a45016 (latest main) + trigger re-benchmark Jul 27, 2026
@MDA2AV

MDA2AV commented Jul 27, 2026

Copy link
Copy Markdown
Owner

/benchmark -f hical --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: hical | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 2,914,656 6591.9% 47MiB +1.3% -6.0%
baseline 4096 3,169,820 6634.5% 114MiB +4.1% -19.1%
pipelined 512 4,494,550 6550.9% 42MiB +8.5% +5.0%
pipelined 4096 4,510,973 6618.6% 146MiB +11.1% -2.0%
limited-conn 512 1,992,732 6271.8% 66MiB -0.7% -27.5%
limited-conn 4096 2,280,937 6474.9% 110MiB -0.1% -31.2%
json 4096 666,298 6655.0% 211MiB -5.7% -6.6%
json-comp 512 263,577 6356.7% 114MiB +0.1% -5.0%
json-comp 4096 262,443 6540.4% 234MiB -0.3% +1.7%
json-comp 16384 257,400 6317.1% 591MiB -0.8% +1.5%
upload 32 1,834 2301.1% 5.0GiB +2.9% +11.1%
upload 256 1,716 6302.6% 9.2GiB +0.5% +1.1%
static 1024 22,692 5833.4% 180MiB -81.6% +10.4%
static 4096 22,476 5851.4% 195MiB -81.3% -63.8%
static 6800 22,442 5740.5% 186MiB -81.0% -78.2%
echo-ws 512 3,376,333 6617.8% 49MiB +3.2% +8.9%
echo-ws 4096 3,738,094 6577.0% 158MiB +2.2% -4.2%
echo-ws 16384 3,368,423 6527.9% 510MiB +3.9% +0.6%
Full log
    Latency    151us     85us    177us   2.34ms   5.09ms

  16881667 frames sent in 5.00s, 16881667 frames received
  Throughput: 3.38M req/s
  Bandwidth:  22.53MB/s
  WS upgrades: 512
  WS frames:   16881667
  Latency samples: 16881609 / 16881667 responses (100.0%)
[info] CPU 6617.8% | Mem 49MiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    151us     90us    190us   1.76ms   5.07ms

  16845581 frames sent in 5.00s, 16845581 frames received
  Throughput: 3.37M req/s
  Bandwidth:  22.49MB/s
  WS upgrades: 512
  WS frames:   16845581
  Latency samples: 16845535 / 16845581 responses (100.0%)
[info] CPU 6570.4% | Mem 49MiB

=== Best: 3376333 req/s (CPU: 6617.8%, Mem: 49MiB) ===
[info] saved results/echo-ws/512/hical.json
httparena-bench-hical
httparena-bench-hical

==============================================
=== hical / 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   1.09ms    549us   3.52ms   6.71ms   9.74ms

  18599434 frames sent in 5.00s, 18595532 frames received
  Throughput: 3.72M req/s
  Bandwidth:  24.92MB/s
  WS upgrades: 4094
  WS frames:   18595532
  Latency samples: 18595532 / 18595532 responses (100.0%)
[info] CPU 6282.3% | Mem 147MiB

[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   1.09ms    559us   3.53ms   6.72ms   9.77ms

  18690802 frames sent in 5.00s, 18690470 frames received
  Throughput: 3.74M req/s
  Bandwidth:  24.96MB/s
  WS upgrades: 4096
  WS frames:   18690470
  Latency samples: 18691056 / 18690470 responses (100.0%)
[info] CPU 6577.0% | Mem 158MiB

[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   1.10ms    558us   3.54ms   6.66ms   9.61ms

  18653253 frames sent in 5.00s, 18653238 frames received
  Throughput: 3.73M req/s
  Bandwidth:  24.90MB/s
  WS upgrades: 4096
  WS frames:   18654617
  Latency samples: 18653154 / 18653238 responses (100.0%)

  WARNING: 18446744073709550237/18653238 responses (98892986159880.4%) had unexpected status (expected 2xx)
[info] CPU 6430.9% | Mem 162MiB

=== Best: 3738094 req/s (CPU: 6577.0%, Mem: 158MiB) ===
[info] saved results/echo-ws/4096/hical.json
httparena-bench-hical
httparena-bench-hical

==============================================
=== hical / 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   4.78ms   5.19ms   8.51ms   11.80ms   56.10ms

  16464564 frames sent in 5.00s, 16448325 frames received
  Throughput: 3.29M req/s
  Bandwidth:  22.35MB/s
  WS upgrades: 16381
  WS frames:   16448325
  Latency samples: 16448325 / 16448325 responses (100.0%)
[info] CPU 5986.5% | Mem 491MiB

[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   4.83ms   5.28ms   8.49ms   11.40ms   15.10ms

  16858502 frames sent in 5.00s, 16842118 frames received
  Throughput: 3.37M req/s
  Bandwidth:  22.88MB/s
  WS upgrades: 16384
  WS frames:   16842118
  Latency samples: 16842118 / 16842118 responses (100.0%)
[info] CPU 6527.9% | Mem 510MiB

[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   4.83ms   5.27ms   8.54ms   11.40ms   14.60ms

  16788037 frames sent in 5.00s, 16771654 frames received
  Throughput: 3.35M req/s
  Bandwidth:  22.79MB/s
  WS upgrades: 16383
  WS frames:   16771654
  Latency samples: 16771654 / 16771654 responses (100.0%)
[info] CPU 6252.3% | Mem 516MiB

=== Best: 3368423 req/s (CPU: 6527.9%, Mem: 510MiB) ===
[info] saved results/echo-ws/16384/hical.json
httparena-bench-hical
httparena-bench-hical
[info] skip: hical does not subscribe to echo-ws-pipeline
[info] skip: hical 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/hical.json - 18 new, 18 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

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