Repository navigation
perf: rerun the full benchmark on main and refresh the published results - #199
Merged
Merged
Conversation
|
Coverage after merging docs/benchmark-rerun into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Coverage after merging docs/benchmark-rerun into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This was referenced Oct 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #168.
This PR reruns the full benchmark suite on
mainatce0c25e, the source after #190, #192, #195 and #196 with the four scenarios of #198, and replaces every published figure with the results of that one batch. Until now the published results combined the batch of October 6 and 7 at2ab58fcwith the cells that #195 and #196 measured again and #198 added.perf-testing/reports/SUMMARY.md). Every result, table and limit comes from this batch, including the shared-process control, the process-order control, memory, the Immer plugin datasets and the local budget gate. The "changes since the previous batch" section now compares this batch with the previously published cells. The PR sections of perf: change the copy of a Set draft directly, and keep the changes of a Set draft that left its key #195, perf: read the type of a draft from its state when applying patches #196 and perf: add benchmark scenarios for Set reads, Map iteration, moved rows and unchanged collections #198 keep their comparisons withmain, and their cross-library figures come from this batch. The history gains an entry for the replaced batch, and the archive index describes the new one.createalone bundles to 7.8 kB instead of 7.7 kB, andcreatewithapply,currentandoriginalto 8.4 kB instead of 8.2 kB. Immer's figures are unchanged.Results
Cells faster / within 5% / slower, and the geometric mean of comparator time over Mutative time.
shiftat 10,000 rows measured 7,426 µs instead of 8,605 µs.class-wide-updatecells with auto-freeze at 1,000 rows. Theconcatcell with freeze and patches on is no longer slower.addandupdate-largeObject1with freeze on at 100 rows, by 7–16%. In each of them the processes of both builds overlapped.Changes against the previously published cells
addwith auto-freeze at 100 rows. It was the only cell that moved by more than 10% and was slower in every process: 19.5 µs against 15.9 µs. Ten alternating rounds of bundles built from2ab58fcandce0c25e, with Mutative alone in each process, measured 18.9 µs against 19.4 µs with overlapping ranges, and 1.52 µs for both without freezing. So the fixes of fix: keep inserted base elements as they are and patch regrown indices of array drafts #190 and fix: harden apply() patch paths and fix mark copies, current() snapshots and async recipe types #192 did not slow it; the cell's processes varied by up to 1.3 times in both batches.Checks
maincheckout: no changes before or after, production artifactbd8ff3a6…, the same as perf: read the type of a draft from its state when applying patches #196's. It took 7 h 13 min on the M1 Max, and all 21 steps succeeded. Each of the 2,400 timing processes validated its scenarios before timing.ci.mjs --self-control) passed all 222 decisions of the five groups; latency 0.875–1.189.pnpm format --checkandoxfmt --checkofperf-testingpass.perf-testing/results/2026-10-10/, as for the previous batch. The archive policy'sperf-reports-*release was not created.Commits
perf: record the benchmark of main at ce0c25e in the performance summarydocs: refresh the README's benchmark figures from the benchmark of ce0c25edocs: refresh the website's benchmark figures from the benchmark of ce0c25edocs: refresh the process order example in the benchmark guidedocs: refresh the Mutative bundle sizes in the README and the installation guide