Tests: Improve benchmark precision
Summary:
- Improved microbenchmarking with multiple features.
- inline performance critical code
- Average runtime is specified and used to calculate iterations.
- Console: show median of multiple runs
- plot: show box plot
- filter benchmarks
- specify scaling factor
- ignore src/test and src/bench in command line check script
- number of iterations instead of time
- Replaced runtime in BENCHMARK makro number of iterations.
- Added -? to bench_bitcoin
- Benchmark plotly.js URL, width, height can be customized
- Fixed incorrect precision warning
- Removed CCheckQueueSpeed benchmark
This benchmark's runtime was rather unpredictive on different machines, not really a useful benchmark.
This is a backport of Core PR11517
Test Plan:
make ./src/bench/becnch_bitcoin
Reviewers: #bitcoin_abc, jasonbcox
Reviewed By: #bitcoin_abc, jasonbcox
Subscribers: jasonbcox, teamcity
Differential Revision: https://reviews.bitcoinabc.org/D1844