Skip to content

chore: refresh benchmarks for v1.37.0 - #1211

Merged
jdx merged 1 commit into
mainfrom
bench-refresh
Aug 2, 2026
Merged

jdx merged 1 commit into
mainfrom
bench-refresh

Conversation

@jdx

@jdx jdx commented Aug 2, 2026 •

Copy link
Copy Markdown
Collaborator

🤖 Refreshed benchmarks

benchmarks/results.json was pinned to aube 1.37.0; the workspace is now 1.37.0. Re-ran mise run bench:bump on the hermetic Verdaccio registry (500mbit / 50ms per the mise task) and regenerated benchmarks/results.json plus the README BENCH_RATIOS block. The benchmark matrix pins aube's GVS mode via npm_config_enable_global_virtual_store=true|false (the auto-synthesized env alias for the enableGlobalVirtualStore setting), so GitHub Actions' inherited CI=true environment does not change whether aube runs with GVS enabled or disabled.

Benchmark changes

Public ratios: warm installs vs Bun 3x -> 3x; warm installs vs pnpm 8x -> 7x; repeat test vs Bun 5x -> 4x; repeat test vs pnpm 44x -> 48x.

Benchmark aube bun deno pnpm npm yarn
Fresh install (warm cache) 299ms -> 203ms (-32%) 1032ms -> 519ms (-50%) 1424ms -> 461ms (-68%) 2341ms -> 1417ms (-39%) 7230ms -> 3590ms (-50%) 8595ms -> 2847ms (-67%)
Fresh install (cold cache) 14490ms -> 6712ms (-54%) 5064ms -> 1448ms (-71%) 7531ms -> 1658ms (-78%) 10670ms -> 6649ms (-38%) 9019ms -> 5689ms (-37%) 11826ms -> 6229ms (-47%)
npm install && npm run test 8ms -> 7ms (-12%) 43ms -> 27ms (-37%) 40ms -> 104ms (+160%) 351ms -> 337ms (-4%) 702ms -> 629ms (-10%) 1270ms -> 1194ms (-6%)

Review the numbers before merging — if anything looks wildly off vs. the previous release, investigate before landing. Hermetic proxy jitter or an npmjs uplink hiccup can occasionally skew results.

Once merged to main, the updated bench results flow into the next release-plz-pr run automatically.


Generated by the bench-refresh workflow.


Note

Low Risk
Documentation and benchmark artifacts only; no runtime or package-manager code changes.

Overview
Re-runs the hermetic benchmark suite for aube 1.37.0 and commits the new numbers in benchmarks/results.json, including an updated updated timestamp and pinned tool versions.

The README BENCH_RATIOS block is regenerated from those results: warm install vs pnpm 8x → 7x, repeat test vs pnpm 44x → 48x, and repeat test vs Bun 5x → 4x (warm vs Bun stays ~3x). Timings across warm/cold install and install && test scenarios shift for all managers in the JSON (e.g. aube warm install 299ms → 203ms).

Reviewed by Cursor Bugbot for commit 60712de. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Documentation

    • Updated performance claims to reflect the latest benchmark results.
    • Reports warm installs as 7× faster than pnpm.
    • Reports repeat test commands as up to 48× faster than pnpm and 4× faster than Bun.
  • Benchmarks

    • Refreshed benchmark measurements and timestamp across package managers, including warm-cache, cold-cache, and install-test results.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The benchmark timestamp and measurements were refreshed in benchmarks/results.json. The README now reports updated speedup ratios for warm installs and repeat test commands.

Changes

Benchmark refresh

Layer / File(s) Summary
Refresh benchmark measurements
benchmarks/results.json
The timestamp and warm-cache, cold-cache, and install-and-test measurements were replaced for all package managers.
Update README benchmark claims
README.md
The documented ratios changed to 7× faster warm installs, up to 48× faster repeat tests versus pnpm, and 4× faster versus Bun.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • jdx/aube#962: Updates the same benchmark results and README claims.
  • jdx/aube#1172: Refreshes benchmark results and reported speedup ratios.
  • jdx/aube#1206: Refreshes benchmark data and README performance claims.

Suggested reviewers: mise-en-dev

Poem

A rabbit refreshed the numbers with care,
New timings now hop through the air.
Seven times warm,
Forty-eight tests swarm,
Four by Bun—benchmarks are there!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the benchmark refresh for version 1.37.0, which matches the primary changes in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@jdx
jdx merged commit 0b7920c into main Aug 2, 2026
9 of 11 checks passed
@jdx
jdx deleted the bench-refresh branch August 2, 2026 00:39
@greptile-apps

greptile-apps Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Refreshes the public benchmark data for aube 1.37.0.

  • Replaces warm-cache, cold-cache, and repeat-test measurements and their statistics.
  • Updates the README’s generated pnpm and Bun comparison ratios.

Confidence Score: 4/5

The PR appears safe to merge after confirming or rerunning the unusually noisy Deno repeat-test measurement.

The generated values, displayed statistics, and README ratios are internally consistent, but Deno’s repeat-test sample has substantial variance and reports a large counter-trend regression that may make the published comparison misleading.

Files Needing Attention: benchmarks/results.json

Important Files Changed

Filename Overview
benchmarks/results.json Regenerates benchmark measurements consistently, but the Deno repeat-test result is unusually variable and should be confirmed.
README.md Updates derived benchmark ratios, which are consistent with the refreshed result values.

Fix All in Claude Code

Reviews (1): Last reviewed commit: "chore: refresh benchmarks" | Re-trigger Greptile

Comment thread benchmarks/results.json
Comment on lines 160 to +165
"deno": {
"text": "0.040s ± 0.003s",
"mean": 0.0398718457,
"stddev": 0.002657353545266187,
"min": 0.0366187298,
"max": 0.0461166818
"text": "0.104s ± 0.031s",
"mean": 0.10425082904,
"stddev": 0.031295927026236105,
"min": 0.06208616854,
"max": 0.17296669954000002

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Noisy Deno repeat benchmark

The refreshed Deno repeat-test result reports a 104ms mean with a 31ms standard deviation and samples spanning 62–173ms, while the previous mean was 40ms. Confirm or rerun this outlier before publishing it so readers receive a stable comparison.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@benchmarks/results.json`:
- Around line 82-133: Reproduce the unexplained aube timings in the gvs-cold and
install-test rows using the exact shared cache-reset procedure, GVS mode,
Verdaccio registry, workload, and measurement command used for all tools. Verify
the results and include the raw samples or command output before publishing the
refreshed benchmarks/results.json data.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: d7dbc254-3efe-4dce-a61b-9c53906da7f5

📥 Commits

Reviewing files that changed from the base of the PR and between 595b6da and 60712de.

📒 Files selected for processing (2)
  • README.md
  • benchmarks/results.json

Comment thread benchmarks/results.json
Comment on lines +82 to 133
"aube": 6712,
"bun": 1448,
"deno": 1658,
"pnpm": 6649,
"npm": 5689,
"yarn": 6229
},
"stats": {
"aube": {
"text": "14.490s ± 0.149s",
"mean": 14.4895393858,
"stddev": 0.14858330659677607,
"min": 14.2098521182,
"max": 14.704034914200001
"text": "6.712s ± 0.115s",
"mean": 6.711541839260001,
"stddev": 0.11531064403065654,
"min": 6.598416060060001,
"max": 6.952401146060001
},
"bun": {
"text": "5.064s ± 0.442s",
"mean": 5.063803260559999,
"stddev": 0.44244186163601684,
"min": 4.59301794356,
"max": 5.90023339456
"text": "1.448s ± 0.032s",
"mean": 1.4482807701399998,
"stddev": 0.03173685604461604,
"min": 1.40050465664,
"max": 1.4858291936399999
},
"deno": {
"text": "7.531s ± 0.345s",
"mean": 7.53053008942,
"stddev": 0.3454735031899585,
"min": 6.99150810152,
"max": 8.31398546552
"text": "1.658s ± 0.080s",
"mean": 1.657637708,
"stddev": 0.08042016722296035,
"min": 1.5599847371000002,
"max": 1.8078081451
},
"pnpm": {
"text": "10.670s ± 0.508s",
"mean": 10.670484293399998,
"stddev": 0.5080510394960686,
"min": 10.025206554199999,
"max": 11.3454253272
"text": "6.649s ± 0.120s",
"mean": 6.6492609505199995,
"stddev": 0.11954274297116929,
"min": 6.47819847112,
"max": 6.77868802112
},
"npm": {
"text": "9.019s ± 0.099s",
"mean": 9.01888841329,
"stddev": 0.09946545632005284,
"min": 8.92484662154,
"max": 9.127589460540001
"text": "5.689s ± 0.020s",
"mean": 5.688687332250001,
"stddev": 0.01955056282605294,
"min": 5.6712272415000005,
"max": 5.716088296500001
},
"yarn": {
"text": "11.826s ± 0.142s",
"mean": 11.82639240329,
"stddev": 0.14217192590030683,
"min": 11.64412466704,
"max": 11.99152539804
"text": "6.229s ± 0.158s",
"mean": 6.22947097494,
"stddev": 0.1578732250564702,
"min": 6.131162020940001,
"max": 6.46445025694
}
}
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Map benchmark sources before inspecting the benchmark implementation.
ast-grep outline benchmarks --items all

# Locate cache handling, registry setup, GVS configuration, commands, and sampling.
rg -n -C 5 \
  -g '*.{mts,ts,js,json}' \
  'gvs-cold|install-test|Verdaccio|GVS|gvs|npm install|npm run test|cache|warmup|iterations|samples' \
  benchmarks

# Check that displayed millisecond values match the recorded means.
python - <<'PY'
import json

with open("benchmarks/results.json", encoding="utf-8") as f:
    results = json.load(f)

for row in results["rows"]:
    print(f'\n{row["key"]}')
    for tool, value_ms in row["values"].items():
        mean_ms = row["stats"][tool]["mean"] * 1000
        print(f"  {tool}: value={value_ms}ms, mean={mean_ms:.3f}ms")
PY

Repository: jdx/aube

Length of output: 20351


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the benchmark generator and related input files/workflow metadata to identify cache/reset and row provenance.
wc -l benchmarks/generate-results.js benchmarks/results.json benchmarks/validate-results.mts
sed -n '1,220p' benchmarks/generate-results.js
sed -n '1,120p' benchmarks/validate-results.mts

# Search repository-wide for gvs benchmark commands and cache reset mechanisms.
rg -n -C 3 \
  'gvs-cold|gvs-warm|VXZ|cache|cache:|cache.*aube|aube.*cache|npm run .*gvs|pnpm .*gvs|bun .*gvs|deno .*gvs|NODE\(\)|GVS|install-test|generate-phase-results|phase.*jsonl|refresh' \
  . \
  -g '!benchmarks/results.json' \
  -g '!node_modules' \
  -g '!dist' \
  -g '!build'

Repository: jdx/aube

Length of output: 50365


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== repo tracked relevant files =="
git ls-files | rg '(^|/)(benchmarks|package.json|pnpm-workspace.yaml|README.md|\.github/workflows/.*ya?ml)$' || true

echo
echo "== package manifests around scripts =="
for f in package.json benchmarks/package.json pnpm-workspace.yaml; do
  if [ -f "$f" ]; then
    echo "--- $f ---"
    sed -n '1,220p' "$f"
  fi
done

echo
echo "== precise benchmark command/cache references =="
rg -n -C 3 \
  --glob '!node_modules/**' \
  --glob '!test/registry/storage/**' \
  --glob '!benchmarks/results.json' \
  'gvs-cold|gvs-warm|VXZ|aube.*cache|cache.*aube|npm run .*bench|node .*generate-phase|node .*summarize|Verdaccio|verdaccio|proxy|install-test|npm install.*test|npm run test' \
  .

Repository: jdx/aube

Length of output: 50365


Don’t publish the unexplained refresh results without proving the row setup.

The gvs-cold refresh shows aube at 6712ms while the warm row is 203ms, and install-test shows aube at 7ms. Publish only after these rows are reproduced with the exact same cache-reset procedure, GVS mode, Verdaccio registry, test workload, and measurement command used by every tool; include the raw samples or command output with the refresh.

🧰 Tools
🪛 OpenGrep (1.26.0)

[ERROR] 99-99: Possible credit card number (PAN) detected in source code. Credit card numbers should never be hardcoded or stored in source files. Use a secrets manager or tokenization service instead.

(coderabbit.pii.credit-card-number)


[ERROR] 102-102: Possible credit card number (PAN) detected in source code. Credit card numbers should never be hardcoded or stored in source files. Use a secrets manager or tokenization service instead.

(coderabbit.pii.credit-card-number)


[ERROR] 108-108: Possible credit card number (PAN) detected in source code. Credit card numbers should never be hardcoded or stored in source files. Use a secrets manager or tokenization service instead.

(coderabbit.pii.credit-card-number)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@benchmarks/results.json` around lines 82 - 133, Reproduce the unexplained
aube timings in the gvs-cold and install-test rows using the exact shared
cache-reset procedure, GVS mode, Verdaccio registry, workload, and measurement
command used for all tools. Verify the results and include the raw samples or
command output before publishing the refreshed benchmarks/results.json data.

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