-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Update perf_test text output, make columns selectable #3014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update perf_test text output, make columns selectable #3014
Conversation
|
CI falure looks spurious to me, I don't think this even changes code that is linked into the binary that failed. |
|
"2.3e+09" carries too little information. I'm not a fan of 352352984723945871259.23154123 precision-without-accuracy, but this is too little. Often changes in the 0.5% range are measurable, and this hides it. |
Fair. In part this is to discourage you from writing tests which fail to normalize the result down to something reasonable which doesn't need this in the first place, where you'd get 6 sig figs. Right now the width is set to 7, which means with scientific notification there is only room for 2 sig figs, since Other option is to use a suffix like |
Let's set it to 9.
|
These benchmarks stress the textual output with large/small amounts of iterations, allocs, runtime. Useful to check that the table formatting works.
This is a follow up for an earlier series where we made the columns more generic. Now we add the ability to choose exactly which columns are output, and also show the "variance" (in the form of MAD / median) for any numeric column. Configurable MAD display, selectable columns, tighter numeric packing - Add --mad-columns option allowing 'all' or comma-separated list so any stats column (runtime, allocs, tasks, inst, cycles, etc.) can show relative MAD (±pct of median) instead of being fixed - Add --columns option to restrict which columns appear in text/markdown output (or 'all' to keep previous behavior) - Improve width fitting: adaptive formatting packs large values and scaled durations (ns/µs/ms/s) more tightly while preserving significant digits - Derive header widths from representative sample values for more consistent alignment and reduced horizontal space - Unified duration scaling path reused for both raw durations and aggregated statistics - Internal printing path simplified (less branching, clearer per-column MAD decision) without changing JSON output schema - Default behavior unchanged when new options are not specified This shouldn't affect json output at all.
3db285d to
db5eda0
Compare
|
@avikivity wrote:
Done. |
This is a follow up for an earlier series where we made the columns
more generic. Now we add the ability to choose exactly which columns
are output, and also show the "variance" (in the form of MAD / median)
for any numeric column.
Configurable MAD display, selectable columns, tighter numeric packing
stats column (runtime, allocs, tasks, inst, cycles, etc.) can show
relative MAD (±pct of median) instead of being fixed
output (or 'all' to keep previous behavior)
scaled durations (ns/µs/ms/s) more tightly while preserving
significant digits
consistent alignment and reduced horizontal space
aggregated statistics
This shouldn't affect json output at all.
Also in this series we add a few which benchmarks stress the textual output with large/small amounts
of iterations, allocs, runtime. Useful to check that the table formatting works. The output from these
benchmarks are shown below (the new output is run with
--mad-columns=runtime,inst):text output
before
after
md output
before
after