Repository navigation
HF-150 (alternative): performance scenarios for cross-sheet references, volatile functions, undo/redo and spilled arrays - #1867
Conversation
The paired tests branch adds cross-sheet references, volatile functions, undo and redo, and spilled arrays to both measurements; the sentence lists them with the families that were already measured. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
hyperformula-docs | e9d239b | Commit Preview URL Branch Preview URL |
Nov 03 2026, 07:10 AM |
Performance✅ Executed instructions: no regression above +0.5% in 21 scenarios.
Instruction countsInstructions counted by callgrind in the measured region of each scenario. The verdict compares the executed instructions: the count without garbage collection and JIT compilation, whose share moves with the state of the heap and the compiler, not only with the code under test. A change larger than ±0.5% of the base is reported. GC, Compilation and Total give the change of those parts and of the whole count, in percent of the base count.
Wall-clock times
Threshold of an unmarked scenario = max(5%, 3 x the standard error of the difference of the two medians). † = the band of changes observed on identical code in earlier runs, instead of that rule. ‡ = a fixed threshold for a scenario that guards against a change of complexity class. This check is advisory: it reports regressions but does not fail the build. head Executed instructions decide the verdict: they do not depend on the load of the runner. Garbage collection and JIT compilation are counted too but shown apart, in percent of the base count, because they move with the state of the heap and the compiler, not only with the code under test. Wall-clock times vary with the load of the runner and are shown for information. This report does not block merging. |
…arios Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## feat/hf-150-perf-report #1867 +/- ##
========================================================
Coverage 97.28% 97.28%
========================================================
Files 207 207
Lines 16218 16218
Branches 3556 3556
========================================================
Hits 15777 15777
Misses 433 433
Partials 8 8 🚀 New features to boost your workflow:
|
Context
The PR adds performance scenarios for cross-sheet references, volatile functions, undo and redo, and spilled arrays, which the suite did not cover. It is an alternative for HF-150, stacked on #1852; whether it belongs in that task is open.
hyperformula/dev-docs/PERFORMANCE.md: one sentence naming the scenario families the suite covers.Test performance(+24% on the existing scenarios) and 230-234 s of callgrind processes per side inCount instructions(+24%). With 4 processes in parallel, that is about +2 min of that job. The last two runs on HF-150: one performance report per pull request, with the instruction count as the verdict #1852 took 15.1 and 17.6 min (Test performance) and 11.9 and 15.4 min (Count instructions).What each scenario exercises is in the paired PR.
How did you test your changes?
feat/hf-150-alt-more-scenariosinhyperformula-tests(handsontable/hyperformula-tests#114, stacked on the tests branch of HF-150: one performance report per pull request, with the instruction count as the verdict #1852).npm run test:jest -- unit/performance: 5 suites, 101 tests passed.npm run lint: 0 errors.PERF_SAMPLE_SCALE=0.5, as one of the four CI rounds), Node 22, shared 4-CPU machine: the six scenarios took 115.1 of 610.2 s. That is +23% on the existing scenarios; in the previous round it was +25%.32649ba; the later tests commitd0f6462changes one comment): the comment says "Executed instructions: no regression above +0.5% in 21 scenarios". All six new scenarios have base and head counts and base and head times. Wall-clock: 19 ok, 2 inconclusive (Sheet A: change value, add/remove row/columnandSpilled arrays - one edit, 3k-cell spill).Test performancetook 21.7 min,Count instructions11.6 min.Compatibility with Excel and Google Sheets
Not applicable.
Public API changes
None.
Out of scope and follow-ups
Spilled arrays - one edit, 3k-cell spillis too short for a stable wall-clock time. Its CI samples alternate between about 39 ms and 26 ms, so the median of a round flips between the two. Five edits in the region did not remove the alternation locally. Its instruction count is unaffected.Types of changes
Performance tests only, plus one sentence in
dev-docs/.Related issues
Checklist
dev-docs/pages this change affects – or none needed it.🤖 Generated with Claude Code