Skip to content

fulmine, fulmine-tuned: publish under the package name, fulmine.js - #1426

Merged
MDA2AV merged 5 commits into
MDA2AV:mainfrom
nigrosimone:fulmine-js-name
Sep 3, 2026
Merged

fulmine, fulmine-tuned: publish under the package name, fulmine.js#1426
MDA2AV merged 5 commits into
MDA2AV:mainfrom
nigrosimone:fulmine-js-name

Conversation

@nigrosimone

@nigrosimone nigrosimone commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

The package is published as fulmine.js on npm and the repository is fulmine.js, but the two entries are on the board as fulmine and fulmine-tuned, so the board, the badge and the per-framework page use a name nobody searches for. This changes the display_name in the two meta.json and nothing else about the entries: same directories, same Dockerfiles, same /benchmark -f fulmine.

The rename moves the slug, so site/data/results/fulmine.json becomes fulmine.js.json and the framework field of every row goes with it. That keeps the published history attached to the entry instead of leaving it to be purged as a stale name. scripts/gen_leaderboard_data.py runs clean after it (no unknown-name warning, the two framework pages are written) and scripts/check_badge_parity.js passes, with site/leaderboard/data.js regenerated here.

On both entries the two POST routes now read the body with the framework's parsers, express.text({ type: () => true }) on /baseline11 and express.raw({ type: () => true }) on /echo, instead of collecting chunks on 'data'. The parser takes the whole body off uWS in one piece, chunked or not, and on a laptop it costs 5 to 7 us less per POST. The type function is there because the load generator sends no Content-Type. Checked with the validator's shapes: fragmented, lower-cased names, chunked, echo 1 B to 100 KB, chunked echo, empty body, on 8080 and 8081.

The saved run measured the parser change: baseline +11.9%, short-lived +12.6%, 8gbit 72.0 -> 68.4 us/req and p99.9 6.8 -> 4.3 ms, the other rows flat. The results commit also brought back fulmine.json and fulmine-tuned.json with the old rows, because the compare step copies main's site/data over the branch and never removes the files the branch renamed; they are dropped again in the last commit and data.js is regenerated.

@nigrosimone
nigrosimone marked this pull request as ready for review September 2, 2026 04:45
@nigrosimone

Copy link
Copy Markdown
Contributor Author

/benchmark-multiple -f fulmine,fulmine-tuned --save

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@nigrosimone

Copy link
Copy Markdown
Contributor Author

/benchmark-multiple -f fulmine,fulmine-tuned --save

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Frameworks: 2 | Test: all tests

fulmine

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,646,820 6791.8% 2.6GiB +11.9% -3.7%
pipelined 4096 32,530,268 6420.8% 2.1GiB +2.1% ~0%
limited-conn 4096 1,485,268 6611.2% 2.7GiB +12.6% ~0%
json-comp 4096 478,013 6373.7% 7.6GiB +0.7% +1.3%
json-comp 16384 494,728 6222.3% 8.5GiB +0.8% ~0%
json-tls 4096 1,022,233 6410.9% 7.1GiB +0.2% -13.4%
8gbit 512 49,377 0.9875 68.39us 159.0us 4270.0us 330.3% 2.7GiB +0.1% ~0%
static-tls 1024 594,289 6594.5% 3.2GiB -2.0% -3.0%
async-db 1024 233,634 5770.7% 4.3GiB +1.9% +16.2%
fortunes 1024 68,675 6497.8% 4.2GiB +0.7% ~0%
gateway-64 512 279,500 5185.7% 4.8GiB +18.6% -4.0%
gateway-64 1024 264,856 5391.7% 5.5GiB +13.4% -3.5%
gateway-h3 64 90,254 3337.2% 3.5GiB -1.0% ~0%
gateway-h3 256 61,282 2408.6% 4.6GiB +0.1% +2.2%
production-stack 256 116,894 2769.4% 3.6GiB -12.3% +2.9%
production-stack 1024 105,309 2641.7% 4.3GiB -4.0% ~0%
echo-ws 512 3,689,829 6512.5% 2.3GiB -0.9% ~0%
echo-ws 4096 3,777,226 6276.7% 2.4GiB -0.6% ~0%
echo-ws 16384 3,523,105 6131.7% 2.5GiB -0.6% ~0%
echo-ws-pipeline 512 24,189,686 6726.6% 2.3GiB -0.4% ~0%
echo-ws-pipeline 4096 24,296,604 6538.9% 2.4GiB +0.3% ~0%
echo-ws-pipeline 16384 23,202,560 6313.0% 2.6GiB +0.2% ~0%
echo-ws-limited 512 2,076,963 5635.9% 2.3GiB -0.2% ~0%
echo-ws-limited 4096 2,551,279 6264.8% 2.4GiB -0.4% ~0%
latency-1m 1024 997,869 0.9979 33.66us 263.0us 1646.0us 3911.7% 2.5GiB ~0% ~0%
latency-10k 1024 9,982 0.9982 39.08us 121.0us 373.0us 37.2% 2.1GiB ~0% ~0%
async 32000 2,076,210 6403.9% 5.7GiB -0.6% ~0%

fulmine-tuned

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,595,557 6551.1% 2.6GiB +10.0% -3.7%
pipelined 4096 32,750,279 6349.1% 2.1GiB -0.7% ~0%
limited-conn 4096 1,450,810 6354.8% 2.6GiB +9.0% -7.1%
json-comp 4096 474,140 6357.3% 7.6GiB -0.6% +1.3%
json-comp 16384 491,530 6245.6% 8.5GiB -0.2% +1.2%
json-tls 4096 1,030,277 6575.2% 8.2GiB -1.6% +18.8%
8gbit 512 49,364 0.9873 69.09us 162.0us 5786.0us 318.9% 2.7GiB ~0% ~0%
static-tls 1024 595,686 6585.4% 3.3GiB -2.2% +3.1%
async-db 1024 239,935 5813.2% 6.2GiB -4.6% ~0%
fortunes 1024 70,705 6506.8% 6.1GiB -0.2% ~0%
gateway-64 512 314,541 5473.9% 5.1GiB -0.7% -3.8%
gateway-64 1024 311,169 6032.4% 6.5GiB +0.7% ~0%
gateway-h3 64 90,285 3252.8% 3.4GiB -0.2% -5.6%
gateway-h3 256 62,553 2434.9% 4.7GiB +1.7% +23.7%
production-stack 256 120,770 2878.3% 3.7GiB -16.0% ~0%
production-stack 1024 105,395 2639.5% 4.4GiB -3.3% ~0%
echo-ws 512 3,701,735 6393.0% 2.3GiB +0.5% ~0%
echo-ws 4096 3,772,036 6279.7% 2.4GiB -0.6% +4.3%
echo-ws 16384 3,538,165 6173.2% 2.5GiB -0.2% ~0%
echo-ws-pipeline 512 23,989,939 6721.9% 2.3GiB -1.0% ~0%
echo-ws-pipeline 4096 24,204,617 6533.3% 2.4GiB -0.3% ~0%
echo-ws-pipeline 16384 22,945,078 6261.9% 2.6GiB -0.6% +4.0%
echo-ws-limited 512 2,084,011 5672.1% 2.4GiB -0.3% +4.3%
echo-ws-limited 4096 2,553,620 6262.5% 2.4GiB -0.4% ~0%
latency-1m 1024 998,214 0.9982 33.36us 263.0us 792.0us 3670.3% 2.5GiB ~0% ~0%
latency-10k 1024 9,982 0.9982 39.76us 122.0us 210.0us 37.7% 2.1GiB ~0% ~0%
async 32000 2,110,747 6367.9% 5.7GiB -0.7% ~0%

@nigrosimone

Copy link
Copy Markdown
Contributor Author

Okay, the results are good for me.

@MDA2AV
MDA2AV merged commit 121fc52 into MDA2AV:main Sep 3, 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