BurntSushi / cargo-benchcmp

A small utility to compare Rust micro-benchmarks.
The Unlicense
343 stars 21 forks source link

Take account of bench error #35

Open alexheretic opened 7 years ago

alexheretic commented 7 years ago

Thanks for this utility!

I think it would be nice to indicate differences inside the control error somehow. Perhaps colour them orange/warning-colour instead of red when a subsequent bench is slower than the control but inside the error.

For example a control

test benchmark_a  ... bench:  24,000,000 ns/iter (+/- 500,000)
test benchmark_b  ... bench:  24,000,000 ns/iter (+/- 5,000)

...and the latest bench

test benchmark_a  ... bench:  24,150,000 ns/iter (+/- 480,000)
test benchmark_b  ... bench:  24,150,000 ns/iter (+/- 5,500)

Will produce this output:

 name         control ns/iter   latest ns/iter     diff ns/iter  diff %  speedup 
 benchmark_a  24,000,000        24,150,000             150,000   0.62%   x 0.99 // colour orange
 benchmark_b  24,000,000        24,150,000             150,000   0.62%   x 0.99 // colour red

benchmark_a will be a warning as the diff is inside the control error. benchmark_b will be red as before as the diff is outside the error.

Perhaps you could also allow an option, similar to --threshold, to ignore warnings/ diffs inside errors.