perf_hooks: add binary export/import to Histogram - #65434
Conversation
|
Review requested:
|
00936d8 to
fbcb489
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #65434 +/- ##
==========================================
+ Coverage 90.11% 90.13% +0.01%
==========================================
Files 752 752
Lines 252208 253239 +1031
Branches 47447 47627 +180
==========================================
+ Hits 227274 228245 +971
- Misses 16219 16230 +11
- Partials 8715 8764 +49
🚀 New features to boost your workflow:
|
fbcb489 to
5d9f7ce
Compare
Welch's t-test, Mann-Whitney U test, Cohen's d, and Cliff's delta, and and handful of others These methods enable in-process benchmark comparison and regression detection without external dependencies. No new dependencies. Tests and docs created by the AI agent. Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode/Opus
Add an --analyze flag that performs statistical analysis directly
after benchmarks complete, eliminating the need for R and compare.R.
When --analyze is specified, compare.js collects the rate data during
the run and prints a statistical summary table instead of CSV output.
The table matches the format of compare.R: improvement percentage,
significance stars (* p<0.05, ** p<0.01, *** p<0.001), and confidence
intervals at three risk levels.
Also adds a --max-regression N option that causes the compare.js to
exit with 1 (error) when the `--new` is N% slower. Useful for CI
use to detect regressions.
Uses the histogram API's welchTest() and cohensD() methods introduced
in the previous commit. Benchmark rates are scaled to integers for
HdrHistogram recording; the --scale option (default 1000) controls
the multiplier for precision.
Usage:
node benchmark/compare.js --old ./node-old --new ./node-new \
--analyze url
Signed-off-by: James M Snell <jasnell@gmail.com>
Assisted-by: Opencode/Opus
5d9f7ce to
dfaacaf
Compare
|
The
notable-change
Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section. |
|
Notes for the notable change: This PR gives Histogram a new binary interchange format |
| } | ||
|
|
||
| // ----------------------------------------------------------------------- | ||
| // Minimal CBOR encoder/decoder (RFC 8949) -- just enough types for |
There was a problem hiding this comment.
Maybe we should get deps/inspector_protocol/crdtp/cbor.h into core...
Provide a binary export/import mechanism for histograms. Since there is no standard interchange format for histograms, using CBOR is meant to make the format as platform/runtime agnostic as possible while producing a compact/efficient result. No new dependency is introduced, we just encode the CBOR directly. Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode/Opus
Signed-off-by: James M Snell <jasnell@gmail.com>
dfaacaf to
28eb138
Compare
Stacks on: #65416
Pay attention only to the last two commits.