5 #ifndef BITCOIN_BENCH_BENCH_H 6 #define BITCOIN_BENCH_BENCH_H 15 #include <boost/preprocessor/cat.hpp> 16 #include <boost/preprocessor/stringize.hpp> 46 using type = std::conditional<hi_res_clock::is_steady, hi_res_clock, steady_clock>::type;
97 static void RunAll(
Printer& printer,
uint64_t num_evals,
double scaling,
const std::string& filter,
bool is_list_only);
105 virtual void header() = 0;
107 virtual void footer() = 0;
139 #define BENCHMARK(n, num_iters_for_one_second) \ 140 benchmark::BenchRunner BOOST_PP_CAT(bench_, BOOST_PP_CAT(__LINE__, n))(BOOST_PP_STRINGIZE(n), n, (num_iters_for_one_second)); 142 #endif // BITCOIN_BENCH_BENCH_H
std::chrono::steady_clock steady_clock
Definition: bench.h:45
void result(const State &state) override
Definition: bench.cpp:64
virtual ~Printer()
Definition: bench.h:104
void footer() override
Definition: bench.cpp:49
std::map< std::string, Bench > BenchmarkMap
Definition: bench.h:91
const uint64_t m_num_evals
Definition: bench.h:60
void result(const State &state) override
Definition: bench.cpp:23
void header() override
Definition: bench.cpp:18
best_clock::type clock
Definition: bench.h:48
bool KeepRunning()
Definition: bench.h:70
std::string m_name
Definition: bench.h:57
PlotlyPrinter(std::string plotly_url, int64_t width, int64_t height)
Definition: bench.cpp:50
std::vector< double > m_elapsed_results
Definition: bench.h:61
const char * name
Definition: rest.cpp:39
clock::duration duration
Definition: bench.h:50
virtual void result(const State &state)=0
unsigned long long uint64_t
Definition: stdint.h:22
State(std::string name, uint64_t num_evals, double num_iters, Printer &printer)
Definition: bench.h:66
int64_t m_width
Definition: bench.h:130
void footer() override
Definition: bench.cpp:81
std::function< void(State &)> BenchFunction
Definition: bench.h:83
std::chrono::high_resolution_clock hi_res_clock
Definition: bench.h:44
const uint64_t m_num_iters
Definition: bench.h:59
uint64_t num_iters_for_one_second
Definition: bench.h:89
static BenchmarkMap & benchmarks()
Definition: bench.cpp:89
BenchFunction func
Definition: bench.h:88
std::conditional< hi_res_clock::is_steady, hi_res_clock, steady_clock >::type type
Definition: bench.h:46
BenchRunner(std::string name, BenchFunction func, uint64_t num_iters_for_one_second)
Definition: bench.cpp:95
std::string m_plotly_url
Definition: bench.h:129
static void RunAll(Printer &printer, uint64_t num_evals, double scaling, const std::string &filter, bool is_list_only)
Definition: bench.cpp:100
void header() override
Definition: bench.cpp:55
bool UpdateTimer(time_point finish_time)
Definition: bench.cpp:141
clock::time_point time_point
Definition: bench.h:49
signed long long int64_t
Definition: stdint.h:18
int64_t m_height
Definition: bench.h:131
uint64_t m_num_iters_left
Definition: bench.h:58
time_point m_start_time
Definition: bench.h:62