Skip to content

bench: refresh json-polyglot and polyglot results (quiet host, 2026-08-06) - #7476

Merged
proggeramlug merged 1 commit into
mainfrom
bench/results-2026-08-06
Aug 6, 2026
Merged

bench: refresh json-polyglot and polyglot results (quiet host, 2026-08-06)#7476
proggeramlug merged 1 commit into
mainfrom
bench/results-2026-08-06

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

First measurement since #7473 fixed the JSON.stringify crash that made perry produce no row at all for json_polyglot/field_access.

Conditions

Verified-quiet host — CPU active confirmed ≤25% for 60 consecutive seconds before each leg (15.2%, 15.1%, 3.7%, 4.5%), AC power, pinned Node v22.23.1 and Bun 1.3.14, 11 runs per cell, median + p95 + σ.

Headline: perry wins the JSON roundtrip

roundtrip median p95 σ RSS
perry (gen-gc + lazy tape) 194 ms 197 1.5 87 MB
bun 221 235 5.1 84 MB
node 384 390 4.0 102 MB

Faster than both, with tight variance (σ 1.5).

field_access is the inverse, and the variant split is the finding

field_access median RSS
perry (mark-sweep, no lazy) 1340 ms 58 MB
perry (gen-gc + lazy tape) 2981 ms 218 MB
bun 223 91 MB
node 384 96 MB

The lazy tape is a 2.2× net loss on this access pattern, on ~4× the memory. That is a well-isolated optimisation target rather than a diffuse gap — the same tape that wins roundtrip loses field_access, so the decision could be per-workload.

Scope

Results files only; no code. The public artifact itself still cannot be published — #7475 (object_deep_clone / promise_all_chains fail under the auto-optimize path) is the remaining gate, and it is pre-existing rather than anything from this run.

Summary by CodeRabbit

  • Documentation
    • Updated benchmark metadata to August 6, 2026.
    • Refreshed JSON polyglot and polyglot benchmark results with newer timing, memory, and per-cell measurements.
    • Updated runtime comparisons, including revised Perry results and continued unavailability of Hermes data.

…8-06)

First measurement since #7473 fixed the JSON.stringify crash that made
perry produce no row at all for json_polyglot/field_access.

Measured on a verified-quiet host: CPU active confirmed <=25% for 60
consecutive seconds before each leg (15.2%, 15.1%, 3.7%, 4.5%), AC power,
pinned Node v22.23.1 and Bun 1.3.14, 11 runs per cell.

Headline: perry now WINS the JSON roundtrip against both runtimes --
194 ms vs bun 221 vs node 384.

field_access is the opposite: 2981 ms against bun's 223, and the
mark-sweep/no-lazy variant beats the default by 2.2x (1340 vs 2981) on a
quarter of the memory (58 vs 218 MB). The lazy tape is a large net loss
on that access pattern, which is a well-isolated optimisation target.
@proggeramlug
proggeramlug merged commit c1f0b6f into main Aug 6, 2026
@proggeramlug
proggeramlug deleted the bench/results-2026-08-06 branch August 6, 2026 01:01
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2fd936a6-03a0-4e8e-9052-bcf578468034

📥 Commits

Reviewing files that changed from the base of the PR and between a8dee4b and 8e63416.

📒 Files selected for processing (2)
  • benchmarks/json_polyglot/RESULTS.md
  • benchmarks/polyglot/RESULTS_AUTO.md

📝 Walkthrough

Walkthrough

Updated two benchmark result documents with August 6, 2026 metadata and newer measurements for runtime performance, memory usage, variability, and result ordering.

Changes

Benchmark results

Layer / File(s) Summary
JSON polyglot benchmark measurements
benchmarks/json_polyglot/RESULTS.md
Updated the benchmark date and replaced measurements for validate-and-roundtrip and parse-and-iterate workloads.
Polyglot benchmark statistics
benchmarks/polyglot/RESULTS_AUTO.md
Updated benchmark metadata, headline medians, and per-cell median, p95, standard deviation, minimum, and maximum values.

Estimated code review effort: 1 (Trivial) | ~5 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bench/results-2026-08-06

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.

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