aboutsummaryrefslogtreecommitdiff
path: root/src/bench/bench.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2016-11-22 10:22:08 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2016-11-22 12:20:57 +0100
commit35328187463a7078b4206e394c21d5515929c7de (patch)
treee310e5beca1e7ad006cb48423c64f72d6a4d00fd /src/bench/bench.h
parent55b2eddcc8fd407aa62fd280f4767e3034a7eb04 (diff)
downloadbitcoin-35328187463a7078b4206e394c21d5515929c7de.tar.xz
bench: Add support for measuring CPU cycles
This adds cycle min/max/avg to the statistics. Supported on x86 and x86_64 (natively through rdtsc), as well as Linux (perf syscall).
Diffstat (limited to 'src/bench/bench.h')
-rw-r--r--src/bench/bench.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/bench/bench.h b/src/bench/bench.h
index f13b145aaf..caf73e949b 100644
--- a/src/bench/bench.h
+++ b/src/bench/bench.h
@@ -41,12 +41,18 @@ namespace benchmark {
double maxElapsed;
double beginTime;
double lastTime, minTime, maxTime, countMaskInv;
- int64_t count;
- int64_t countMask;
+ uint64_t count;
+ uint64_t countMask;
+ uint64_t beginCycles;
+ uint64_t lastCycles;
+ uint64_t minCycles;
+ uint64_t maxCycles;
public:
State(std::string _name, double _maxElapsed) : name(_name), maxElapsed(_maxElapsed), count(0) {
minTime = std::numeric_limits<double>::max();
maxTime = std::numeric_limits<double>::min();
+ minCycles = std::numeric_limits<uint64_t>::max();
+ maxCycles = std::numeric_limits<uint64_t>::min();
countMask = 1;
countMaskInv = 1./(countMask + 1);
}