HomePhabricator

Tests: Improve benchmark precision

Description

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

Depends on D1842 and D1843

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

Details

Provenance
Martin Ankerl <Martin.Ankerl@gmail.com>Authored on Oct 17 2017, 14:48
deadalnixCommitted on Oct 3 2018, 13:05
deadalnixPushed on Oct 3 2018, 14:07
Reviewer
Restricted Project
Differential Revision
D1844: Tests: Improve benchmark precision
Parents
rSTAGING5ca09825881e: Do not shadow variables (gcc set)
Branches
Unknown
Tags
Unknown

Event Timeline