Skip to content

Refresh the benchmark charts from the v1.0.0-rc.1 run - #2

Merged
samuelduchesne merged 1 commit into
mainfrom
chore/refresh-benchmark-charts
Sep 4, 2026
Merged

Refresh the benchmark charts from the v1.0.0-rc.1 run#2
samuelduchesne merged 1 commit into
mainfrom
chore/refresh-benchmark-charts

Conversation

@samuelduchesne

Copy link
Copy Markdown
Contributor

All 14 benchmark charts under docs/assets/ now come from CI run 33888625464: a median of five runs on Linux, EnergyPlus 9.3, the same 1,700-object model and the same workflow that produced the set they replace. The previous charts were generated on 2026-05-05 and have been through three releases since.

docs/benchmarks.md needs no edit: it describes a 1,700-object IDF file, and the new run reports total_objects: 1700.

The headline number reads lower, and nothing regressed

The hero chart now says 1768x where the old one said roughly 3000x. Recovering results.json from past release assets shows why. All five are CI median-of-5 on the same runner image:

releaseidfkit hero opslowest competitorheadline ratio
v0.12.11742ns4.93ms2830x
v0.13.02094ns4.66ms2227x
v0.14.01502ns4.92ms3275x
v0.15.02765ns4.91ms1775x
v1.0.0-rc.12609ns4.61ms1768x

The competitors are stable within 4.6-4.9ms. idfkit's own time on Get single object by name is a sub-microsecond measurement that jitters between 1502ns and 2765ns, so the published ratio has swung between 1775x and 3275x on noise alone. The 3000x figure came from v0.14.0's low end of that range; v0.15.0 already measured 1775x, and this run lands beside it.

The ESO charts are untouched

benchmark_eso_*.svg come from bench_eso.py, which needs a 104 MB annual .eso the benchmark workflow does not carry. Those four are still refreshed by hand and are unchanged here.

Related

  • idfkit#197 fixed the benchmark workflow, which had been writing charts into the docs/ tree that moved to this repository.
  • idfkit's README still claims "over 3000x faster". The benchmark workflow patches README.md but only uploads it as an artifact, so no run has ever committed the result. That claim is stale independently of this PR and is worth its own change in idfkit.

Checks

make docs-test fails locally on this machine for want of libcairo, identically on pristine main (106 warnings either way), so this change is neutral to it. make check fails on pristine main too, on an S310 finding in scripts/sync_js_artifacts.py from a pre-commit-pinned ruff newer than the project's.

The published charts were generated on 2026-05-05 and have been through
three releases since. These come from CI run 33888625464: a median of five
runs on Linux, EnergyPlus 9.3, the same 1,700-object model and the same
workflow that produced the previous set.
The headline ratio on "Get single object by name" reads lower than the
charts it replaces, 1768x against roughly 3000x, but nothing regressed.
idfkit's own time on that operation is a sub-microsecond measurement and
jitters between 1502ns and 2765ns across the last five CI runs while the
slowest competitor holds steady at 4.6 to 4.9ms, so the ratio has swung
between 1775x and 3275x on noise alone. v0.15.0 already measured 1775x.
The ESO charts are untouched: bench_eso.py needs a 104 MB input the
benchmark workflow does not carry, so those are still refreshed by hand.
github-actionsBot added a commit that referenced this pull request Sep 4, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Docs preview for this PR is available at:
https://developers.idfkit.com/pr-preview/pr-2/

@samuelduchesne
samuelduchesne merged commit 7645902 into mainSep 4, 2026
6 checks passed
@samuelduchesne
samuelduchesne deleted the chore/refresh-benchmark-charts branch September 4, 2026 15:48
github-actionsBot added a commit that referenced this pull request Sep 4, 2026
Sign up for freeto 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

@samuelduchesne