Skip to content

Nest 4/4: hello-nest in the HTTP benchmark matrix - #9

Draft
puskuruk wants to merge 4 commits into
nest/aot-hello-nestfrom
nest/bench-hello-nest
Draft

puskuruk wants to merge 4 commits into
nest/aot-hello-nestfrom
nest/bench-hello-nest

Conversation

@puskuruk

@puskuruk puskuruk commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Adds nest-gea and nest-node rows to bench/http-matrix.py and the Nest build to bench/goal-http-build.sh, aligns apps/hello-nest with the other benchmark apps (gea binary in dist/, tsc oracle in dist-node/, a cluster.node.mjs), and records the runs with BENCHMARKS.md sections.

  • 1bd2de7 Add hello-nest to the HTTP benchmark matrix as nest-gea and nest-node
  • 22eba03 Record the hello-nest Node against compiled run of 2026-10-19 on an arm64 Linux VM
  • 2bfd355 Record the full HTTP matrix of 2026-10-19 on the arm64 Linux VM
  • e61a006 Record the 2026-10-25 runs on the arm64 Linux VM with platform-node 12.2.0 and compiler 1.0.47

The Node row runs the tsc output of the same server.ts (Node's type stripping has no decorators). The current run, 2026-10-25: arm64 Ubuntu 24.04 container (clang 18.1.3, Node 24.20.0, wrk 4.1.0, cargo 1.90) on an 8-vCPU Colima VM on an Apple M1, VM and host otherwise idle, house protocol, all ten servers three complete rounds, 72 wire checks passed. The three gea binaries were built in the container by the published compiler 1.0.47, hello-nest on platform-node 12.2.0; brotli 1.2.1 was supplied through BROTLI_DIR because Ubuntu's 1.1.0 fails the build's CVE check. Not the bench host: compare ratios, not absolute sizes, across runs.

Server 1w / 1w /json 1w PSS MiB 1w startup ms 4w / 4w /json 4w PSS MiB 4w startup ms 4w p50 4w p99
hono-gea 153,784 121,440 6.4 7 376,158 323,931 8.5 8 128 µs 844 µs
hono-node 32,085 29,943 115.9 65 99,174 90,035 255.5 103 571 µs 2.02 ms
nest-gea 121,585 114,648 9.6 12 324,514 314,454 11.2 12 148 µs 736 µs
nest-node 54,336 52,106 118.5 498 175,532 165,650 350.7 924 318 µs 1.66 ms
gea-raw 232,639 229,654 4.5 9 459,725 474,422 5.9 7 96 µs 1.68 ms
node-raw 58,188 57,713 88.1 53 180,682 177,656 182.4 76 302 µs 1.17 ms
cpp-drogon 184,309 177,426 10.3 12 396,290 394,825 10.5 6 116 µs 635 µs
rust-axum 212,382 216,768 3.2 6 320,962 321,643 4.2 6 163 µs 498 µs
rust-hyper 245,773 249,293 2.3 6 340,853 341,511 2.8 6 152 µs 442 µs
cpp-epoll 281,368 280,232 2.3 6 473,147 472,736 3.4 6 90 µs 1.00 ms

GET /, compiled over Node at one and four workers: hono 4.79× and 3.79×, nest 2.24× and 1.85×, raw 4.00× and 2.54×. At four workers nest-gea is 0.86× hono-gea and 1.80× bare Node; gea-raw is 0.97× cpp-epoll and 1.35× rust-hyper. PSS 1/30 to 1/31 for all three pairs. Binaries: hono-gea 5,283,152 bytes, nest-gea 8,016,904, gea-raw 3,669,280.

Records: bench/results/http-colima-arm64-2026-10-25{,-startup}.json and a nest-only run the same day, nest-colima-arm64-2026-10-25{,-startup}.json, within 2% of the full matrix. The 2026-10-19 records (platform-node 12.1.3, compiler checkout 1.0.37 plus the four fixes) stay alongside with their own section; every row, the controls included, ran faster on 2026-10-25, so the two days compare by ratio only.

Verification on e61a006 with 1.0.47: all 33 scripts/test-*.mjs pass except test-hello-nest.mjs at the expected HELLO_NEST_PARITY: 10 of 11 identical (the JSON.parse wording; 11 of 11 with https://github.com/geastack/compiler/pull/22); tools/nest check 24 tables; python3 -m py_compile bench/http-matrix.py; bash -n bench/goal-http-build.sh; bench/summarize-http-matrix.py reproduces the table from the records.

Related

Stack: #6 (1/4) → #7 (2/4) → #8 (3/4, the app this measures) → this PR. Compiler for the current run: the published @geastack/compiler 1.0.47.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@puskuruk

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@puskuruk
puskuruk force-pushed the nest/aot-hello-nest branch from 714d794 to f6c7b52 Compare October 20, 2026 04:33
@puskuruk
puskuruk force-pushed the nest/bench-hello-nest branch 2 times, most recently from b80284d to 475e307 Compare October 23, 2026 01:48
@puskuruk
puskuruk force-pushed the nest/aot-hello-nest branch 2 times, most recently from 00d3cba to 2663870 Compare October 23, 2026 09:17
@puskuruk
puskuruk force-pushed the nest/bench-hello-nest branch from 475e307 to 32411a6 Compare October 23, 2026 09:17
…2.2.0 and compiler 1.0.47

All ten servers, three complete rounds, gea binaries built in the container
by the published compiler 1.0.47, hello-nest on platform-node 12.2.0; plus a
nest-only run the same day. BENCHMARKS.md names 12.2.0 where it described
the vendored packages.
@puskuruk
puskuruk force-pushed the nest/aot-hello-nest branch from 2663870 to df1a705 Compare October 25, 2026 16:20
@puskuruk
puskuruk force-pushed the nest/bench-hello-nest branch from 32411a6 to e61a006 Compare October 25, 2026 16:20
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.

1 participant