Page MenuHomePhabricator

Tests: Improve benchmark precision
ClosedPublic

Authored by deadalnix on Sep 30 2018, 14:52.

Details

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

Diff Detail

Repository
rABC Bitcoin ABC
Branch
benchfeatures
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 3451
Build 4978: Bitcoin ABC Buildbot (legacy)
Build 4977: arc lint + arc unit

Event Timeline

jasonbcox requested changes to this revision.Oct 1 2018, 21:14
jasonbcox added a subscriber: jasonbcox.
jasonbcox added inline comments.
src/bench/bench.cpp
6

These should stay the same.

src/bench/bench.h
25

Nit: This comment is all messed up. please fix.

src/bench/checkqueue.cpp
20

This should be size_t as well.

This revision now requires changes to proceed.Oct 1 2018, 21:14
deadalnix marked an inline comment as done.

Address comments

This revision is now accepted and ready to land.Oct 3 2018, 03:07

Rebase and fix cashaddr benchmark

This revision was automatically updated to reflect the committed changes.