📝 Refresh benchmark charts and numbers for the current build#232
Conversation
|
Warning Review limit reached
Next review available in: 43 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (11)
📒 Files selected for processing (13)
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. Comment |
There was a problem hiding this comment.
Pull request overview
This PR refreshes the published benchmark assets and figures to match the current build after this session's loads-path work. It re-renders all 12 docs/public/benchmarks/*.svg charts via just charts and updates the written speed figures throughout the documentation (headline ranges, per-payload/per-library tables, chart alt-text, and the cross-library millisecond table). It fits into the project as documentation-only maintenance, keeping the marketing/comparison pages aligned with reproducible benchmark output.
Changes:
- Updated parse/dump/include ratios and per-payload tables (e.g., parse vs PyYAML C
5-10x→6-10x, vs ruamel85-135x→105-141x; dump vs ruamel155-210x→160-208x; includes18x→17x) across README, landing page, and comparison guides. - Regenerated all 12 benchmark SVG charts with new timings and the corrected library ordering (e.g., adding
fast-yamlto the load alt-text, oyaml/PyYAML-pure swap). - Updated the cross-library wall-clock table (
comparisons/index.md) and eachvs-<lib>.mdhead-to-head table with new absolute times and ratios.
Reviewed changes
Copilot reviewed 13 out of 24 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updated summary ratio table (parse/dump vs PyYAML C & ruamel, includes). |
| docs/src/content/docs/index.mdx | Refreshed "Fast" card prose and the HTML ratio table. |
| docs/src/content/docs/guides/performance.md | Updated headline ranges, per-payload parse/dump/include tables, and chart alt-text ordering. |
| docs/src/content/docs/comparisons/index.md | Refreshed ratio bullets, feature-table speed rows, and cross-library ms table. |
| docs/src/content/docs/comparisons/vs-pyyaml.md | Updated feature rows and per-payload/include tables. |
| docs/src/content/docs/comparisons/vs-ruamel.md | Updated parse/dump ranges and per-payload ratio tables. |
| docs/src/content/docs/comparisons/vs-{yamlium,yaml-rs,strictyaml,ryaml,py-yaml12,oyaml,fast-yaml}.md | Updated head-to-head speed rows and ms/ratio tables. |
| docs/public/benchmarks/{load,dump,vs-*}.svg | Regenerated charts with new timings, labels, and clip-path IDs. |
Consistency notes: All refreshed figures are internally consistent across files. The one gap: getting-started/migrating-from-ruamel.md and guides/includes.md (not in this PR) still show the old figures, contradicting the description's "every written benchmark figure" claim — flagged inline.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Breaking change
None. Documentation and benchmark-asset refresh only.
Proposed change
Regenerates the benchmark charts and updates every written benchmark figure to the current build, on this machine. After this session's loads-path work (quoted and block scalar scanning, the multi-document key cache, SIMD), the published numbers had drifted, they were measured against an older build and an older field.
docs/public/benchmarks/*.svgre-rendered withjust charts(load, dump, and the ninevs-<lib>head-to-heads).guides/performance.md(parse/dump/includes tables, headline ranges, chart alt-text),comparisons/index.md(ratio summary, feature-table speed rows, the cross-library ms table),vs-pyyaml.md(feature rows + per-payload tables), all eightvs-<lib>.md(head-to-head tables + speed rows),README.md, and the landingindex.mdx.Loads ratios held or improved across the board (parse vs PyYAML's C loader ~5-10x to ~6-10x, vs ruamel ~85-135x to ~105-141x). The dump ratios against the fastest Rust competitors are slightly tighter than the old docs claimed: the dump path was not touched this session, so this reflects those pinned competitors getting faster at dumping since the docs were last generated, not a regression here. YAMLRocks still leads every library on both operations.
Numbers are one machine, best-of-many per measurement (
bench/compare.py), and reproduce within ~1-2% across runs. The text figures match the freshly rendered charts.Type of change
Additional information
Checklist
uv run pytestpasses locally. A pull request cannot be merged unless CI is green.uv run ruff check .anduv run ruff format --check .pass.cargo fmt --checkandcargo clippy --all-targets -- -D warningspass.If the change is user-facing:
docs/is added or updated, anddocs/verify_examples.pystill passes.