Refresh engine comparison results; add wall-clock profiling driver#2505
Merged
Conversation
README.md: 2026-06-07 results on .NET 10.0.8 (Jurassic 3.2.9, NiL.JS 2.6.1722, YantraJS.Core 1.2.404 - all latest). Notes the severe YantraJS 1.2.404 regression on dromaeo-object-regexp (~35 s/op, ~32 GB allocated; 1.2.344 ran it at ~1 s/op). CpuProfileDriver adds a `--profile-cpu <script> <iters> <source|prepared>` mode mirroring EngineComparisonBenchmark per-op shape (fresh strict engine per iteration, dromaeo helper stubs) for quick wall-clock A/B comparisons, complementing the existing --profile-memory probe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records a falsified optimization hypothesis: skipping the redundant TimeClip + double round-trip in the `new Date()` now-path showed no measurable win (15.15ms +/- 0.38 -> 15.19ms +/- 0.21 per 100k constructions) because per-construction cost is dominated by dispatch, allocation and the UtcNow syscall. Kept as a guard for future Date work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fresh full EngineComparison run on main with all five engine-comparison perf PRs merged (sebastienros#2502 empty-FDI, sebastienros#2503 eval cache, sebastienros#2504 prepared-script fix, sebastienros#2506 string slice views, sebastienros#2507 global-binding cache). Jint now: - dromaeo-object-string ~58-61 ms / 139 MB (rank 1, was ~170 ms / 1.3 GB and losing to NiL.JS) and the -modern variant likewise rank 1 - array-stress rank 1 (3,290 us, ParsedScript) - stopwatch 174-181 ms (was ~205 ms) - still the lowest allocations in nearly every workload Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
lahma
force-pushed
the
benchmark-refresh-2026-06
branch
from
June 8, 2026 14:49
2a0c9dd to
1341057
Compare
This was referenced Jun 15, 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.
Benchmark housekeeping from the 2026-06 engine-comparison campaign.
EngineComparisonresults (2026-06-07, .NET 10.0.8, Ryzen 9 5950X) with all competitor engines at their latest versions: Jurassic 3.2.9, NiL.JS 2.6.1722, YantraJS.Core 1.2.404. Notes the severe YantraJS 1.2.404 regression ondromaeo-object-regexp(~35 s/op and ~32 GB allocated per op vs ~1 s/op on 1.2.344). Jint leads or ties time on 8 of 19 workloads and has the lowest allocations in nearly all.--profile-cpu <script> <iters> <source|prepared>): wall-clock A/B driver mirroringEngineComparisonBenchmark''s per-op shape (fresh strict engine per iteration, dromaeo helper stubs), complementing the existing--profile-memoryprobe. Useful for quick prepared-vs-source comparisons without a full BDN run.TimeClip/double round-trip in thenew Date()now-path showed no measurable win (15.15 ± 0.38 → 15.19 ± 0.21 ms per 100k constructions); per-construction cost is dominated by dispatch, allocation and theUtcNowsyscall. Kept as a guard for future Date work.Note: the Jint rows in the README table predate #2502/#2503/#2504.
🤖 Generated with Claude Code