Skip to content

Refresh engine comparison benchmark results#2598

Merged
lahma merged 1 commit into
sebastienros:mainfrom
lahma:benchmark-readme-refresh
Jul 8, 2026
Merged

Refresh engine comparison benchmark results#2598
lahma merged 1 commit into
sebastienros:mainfrom
lahma:benchmark-readme-refresh

Conversation

@lahma

@lahma lahma commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Re-run of EngineComparisonBenchmark (full suite, BenchmarkDotNet default jobs, same hardware/SDK as the previous refresh) after the builtin-shapes rollout and the 2026-07 performance campaign (#2580#2597). Competitor versions unchanged — their rows served as thermal canaries and read within ±3% of the previous refresh.

Highlights vs the 4.11.0 refresh (prepared-script path)

Script 4.11.0 now time alloc
minimal 1.76 µs / 15.4 KB 0.93 µs / 8.45 KB −47% −45%
evaluation / -modern 4.9 / 5.0 µs, 24 KB 4.3 / 4.1 µs, 16 KB −13/−18% −33%
stopwatch-modern 215 ms 168 ms −22% flat
dromaeo-object-string 54.0 ms 46.5 ms −14% flat
dromaeo-string-base64 / -modern 28.0 / 32.0 ms 24.7 / 27.9 ms −12/−13% flat
dromaeo-object-array 14.8 ms 13.2 ms −11% flat
dromaeo-3d-cube 7.74 ms 7.38 ms −4.6% flat

Rank changes: dromaeo-string-base64 — Jint took the lead from NiL.JS (both variants); stopwatch-modern — Jint moved ahead of NiL.JS and closed on Jurassic (1.44× → 1.13×); minimal source mode now also beats NiL.JS.

One row reads slower: dromaeo-object-array-modern +10%, a family with a documented ±7–11% run-to-run swing whose classic sibling improved 11%. The reading reproduces identically on builds with and without the most recent merges (verified via a pre-#2595 worktree A/B), so it is noted in the README as tracked measurement noise pending the next refresh. dromaeo-object-regexp's apparent +15% did not reproduce on re-run (112 ms vs the previous 110 ms; that row swings ~12% between runs).

🤖 Generated with Claude Code

https://claude.ai/code/session_01S2U2y9voMQV9rvCkYeQbka

Re-run after the builtin-shapes rollout and the 2026-07 performance
campaign (sebastienros#2580-sebastienros#2597). Highlights vs the 4.11.0 refresh: minimal script
-47% time / -45% allocation (prepared execution now under a microsecond),
evaluation -33% allocation, stopwatch-modern -22% (ahead of NiL.JS, 1.13x
behind Jurassic, from 1.44x), object-string -14%, string-base64 -12%
(taking the lead from NiL.JS), object-array -11%. Competitor versions
unchanged; their rows served as thermal canaries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S2U2y9voMQV9rvCkYeQbka
@lahma
lahma merged commit c593216 into sebastienros:main Jul 8, 2026
4 checks passed
@lahma
lahma deleted the benchmark-readme-refresh branch July 8, 2026 10:18
@christianscheuer

Copy link
Copy Markdown

Amazing work, Marko! I've been following the work on Jint for about 10 years and it's never been more exciting to see the progress than right now. I didn't know the right place to express my gratitude, so forgive the noise, but thank you for all your hard work!

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