Skip to content

📝 Refresh benchmark charts and numbers for the current build#232

Merged
frenck merged 1 commit into
mainfrom
frenck/refresh-benchmarks
Jul 6, 2026
Merged

📝 Refresh benchmark charts and numbers for the current build#232
frenck merged 1 commit into
mainfrom
frenck/refresh-benchmarks

Conversation

@frenck

@frenck frenck commented Jul 6, 2026

Copy link
Copy Markdown
Owner

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.

  • Charts: all 12 docs/public/benchmarks/*.svg re-rendered with just charts (load, dump, and the nine vs-<lib> head-to-heads).
  • Written numbers: 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 eight vs-<lib>.md (head-to-head tables + speed rows), README.md, and the landing index.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

  • Dependency or tooling upgrade
  • Bugfix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Deprecation (replaces or removes a feature, with a migration path)
  • Breaking change (a fix or feature that changes existing behavior)
  • Code quality, refactor, or test-only change
  • Documentation only

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to:
  • Link to a separate documentation pull request:

Checklist

  • I have read the AI Policy, and this pull request was not created by an autonomous agent.
  • I fully understand the code in this pull request and can explain every line, including any AI-assisted changes.
  • The change is covered by tests, and uv run pytest passes locally. A pull request cannot be merged unless CI is green.
  • uv run ruff check . and uv run ruff format --check . pass.
  • cargo fmt --check and cargo clippy --all-targets -- -D warnings pass.
  • Round-trip fidelity is preserved: an unmodified document still re-emits byte-for-byte.
  • No commented-out or dead code is left in the pull request.

If the change is user-facing:

  • Documentation under docs/ is added or updated, and docs/verify_examples.py still passes.

Copilot AI review requested due to automatic review settings July 6, 2026 12:04
@frenck frenck added the documentation Solely about the documentation of the project. label Jul 6, 2026
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@frenck, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 43 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 0ebee2f3-cba0-487d-958f-5074d401fe3e

📥 Commits

Reviewing files that changed from the base of the PR and between e97fb58 and 0b572f6.

⛔ Files ignored due to path filters (11)
  • docs/public/benchmarks/dump.svg is excluded by !**/*.svg
  • docs/public/benchmarks/load.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-fast-yaml.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-oyaml.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-py-yaml12.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-pyyaml.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-ruamel.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-ryaml.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-strictyaml.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-yaml-rs.svg is excluded by !**/*.svg
  • docs/public/benchmarks/vs-yamlium.svg is excluded by !**/*.svg
📒 Files selected for processing (13)
  • README.md
  • docs/src/content/docs/comparisons/index.md
  • docs/src/content/docs/comparisons/vs-fast-yaml.md
  • docs/src/content/docs/comparisons/vs-oyaml.md
  • docs/src/content/docs/comparisons/vs-py-yaml12.md
  • docs/src/content/docs/comparisons/vs-pyyaml.md
  • docs/src/content/docs/comparisons/vs-ruamel.md
  • docs/src/content/docs/comparisons/vs-ryaml.md
  • docs/src/content/docs/comparisons/vs-strictyaml.md
  • docs/src/content/docs/comparisons/vs-yaml-rs.md
  • docs/src/content/docs/comparisons/vs-yamlium.md
  • docs/src/content/docs/guides/performance.md
  • docs/src/content/docs/index.mdx

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.

@codspeed-hq

codspeed-hq Bot commented Jul 6, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 16 untouched benchmarks


Comparing frenck/refresh-benchmarks (0b572f6) with main (e97fb58)

Open in CodSpeed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ruamel 85-135x→105-141x; dump vs ruamel 155-210x→160-208x; includes 18x→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-yaml to the load alt-text, oyaml/PyYAML-pure swap).
  • Updated the cross-library wall-clock table (comparisons/index.md) and each vs-<lib>.md head-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.

Comment thread docs/src/content/docs/guides/performance.md
@frenck frenck merged commit c19b86d into main Jul 6, 2026
72 of 73 checks passed
@frenck frenck deleted the frenck/refresh-benchmarks branch July 6, 2026 12:36
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jul 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentation Solely about the documentation of the project.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants