You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- backports bitcoin/bitcoin@535ed92
Benchmarking framework, loosely based on google's micro-benchmarking
library (https://github.com/google/benchmark)
Wny not use the Google Benchmark framework? Because adding Even More
Dependencies
isn't worth it. If we get a dozen or three benchmarks and need
nanosecond-accurate
timings of threaded code then switching to the full-blown Google
Benchmark library
should be considered.
The benchmark framework is hard-coded to run each benchmark for one
wall-clock second,
and then spits out .csv-format timing information to stdout. It is left
as an
exercise for later (or maybe never) to add command-line arguments to
specify which
benchmark(s) to run, how long to run them for, how to format results,
etc etc etc.
Again, see the Google Benchmark framework for where that might end up.
See src/bench/MilliSleep.cpp for a sanity-test benchmark that just
benchmarks
'sleep 100 milliseconds.'
To compile and run benchmarks:
cd src; make bench
Sample output:
Benchmark,count,min,max,average
Sleep100ms,10,0.101854,0.105059,0.103881
// Distributed under the MIT software license, see the accompanying
3
+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
// Distributed under the MIT software license, see the accompanying
3
+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
// Distributed under the MIT software license, see the accompanying
3
+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
+
#ifndef BITCOIN_BENCH_H
5
+
#defineBITCOIN_BENCH_H
6
+
7
+
// Simple micro-benchmarking framework; API mostly matches a subset of the Google Benchmark
8
+
// framework (see https://github.com/google/benchmark)
9
+
// Wny not use the Google Benchmark framework? Because adding Yet Another Dependency
10
+
// (that uses cmake as its build system and has lots of features we don't need) isn't
// Copyright (c) 2015-2020 The Bitcoin Core developers
2
+
// Copyright (c) 2020 The PIVX developers
3
+
// Distributed under the MIT software license, see the accompanying
4
+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
+
6
+
#include"bench.h"
7
+
8
+
#include"key.h"
9
+
#include"main.h"
10
+
#include"util.h"
11
+
12
+
int
13
+
main(int argc, char** argv)
14
+
{
15
+
ECC_Start();
16
+
SetupEnvironment();
17
+
g_logger->m_print_to_file = false; // don't want to write to debug.log file
0 commit comments