Refresh engine comparison benchmark results#2561
Merged
Merged
Conversation
Re-run the EngineComparison suite on the current `main` (14 commits past v4.10.1) and refresh Jint.Benchmark/README.md. Competitor engine versions are unchanged since the tag (Jurassic 3.2.9, NiL.JS 2.6.1722, YantraJS.Core 1.2.406), so all movement is Jint's own allocation and dispatch tuning (object-literal/constructor shapes, in-object properties, built-in shapes, write-side + prototype-method inline caches). Headline changes vs the previous table: dromaeo-object-array -12.7% (15.1 ms), array-stress -6.5%; allocation flat everywhere except a ~28 KB/op rise on linq-js (the one shape-diverse workload, still 5-13x below the field). A v4.10.1-vs-HEAD Jint-only A/B in a single thermal window confirms no alarming regressions: the apparent stopwatch / object-string / base64 slowdowns flip sign between the re-parse and prepared paths and sit within run-to-run variance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
lahma
enabled auto-merge (squash)
June 30, 2026 19:25
This was referenced Jul 6, 2026
This was referenced Jul 13, 2026
This was referenced Jul 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Re-runs the
EngineComparisonsuite on the currentmain(14 commits pastv4.10.1) and refreshesJint.Benchmark/README.mdwith a fresh table, updated highlights, and a regression-focused summary.Context
The competitor engine versions are unchanged since
v4.10.1(Jurassic 3.2.9, NiL.JS 2.6.1722, YantraJS.Core 1.2.406), so every movement in the table is Jint's own allocation/dispatch tuning landed since the tag: object-literal & constructor shapes (#2552, #2553), in-object properties (#2559), source-generated built-in shapes (#2554–#2557), the write-side (#2546) and prototype-method (#2558) inline caches, recursion env pooling (#2549), and zero-copySlicedStringsearch (#2547).Regression check (the headline ask)
I ran a
v4.10.1-vs-HEADJint-only A/B back-to-back in a single thermal window (bothJintre-parse andJint_ParsedScriptprepared paths), on top of the full all-engines run used for the table. Verdict: no alarming regressions.dromaeo-object-array−12.7% (17.0 → 15.1 ms),dromaeo-object-array-modern−3%/−12%,array-stress−6.5%/−12% — all attributable to the prototype-method inline cache (Prototype-method inline cache forobj.methodresolved on the direct prototype #2558).linq-js, which rises ~28 KB/op (175 → 203 KB prepared) — the one workload that builds many distinct object shapes per run, so the new shape metadata is rebuilt each operation. It is still 5× below YantraJS and 13× below NiL.JS.stopwatch,dromaeo-object-stringanddromaeo-string-base64show deltas in the ±5–8% band, but they flip sign between the re-parse and prepared paths within the same run (e.g.stopwatchis +4.5% prepared / −6.7% re-parse), and intra-run the two paths disagree by more than the delta itself. These are call-dispatch-bound, high-variance scripts; the deltas are within their run-to-run noise floor.Method
DefaultJob), same machine as the previous refresh.main@9c0266e6c.v4.10.1worktree vsHEAD,Jint/Jint_ParsedScriptonly, adjacent runs.🤖 Generated with Claude Code