Changeset View
Changeset View
Standalone View
Standalone View
src/bench/examples.cpp
// Copyright (c) 2015-2016 The Bitcoin Core developers | // Copyright (c) 2015-2016 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include <bench/bench.h> | #include <bench/bench.h> | ||||
#include <util/time.h> | |||||
// Sanity test: this should loop ten times, and | |||||
// min/max/average should be close to 100ms. | |||||
static void Sleep100ms(benchmark::State &state) { | |||||
while (state.KeepRunning()) { | |||||
UninterruptibleSleep(std::chrono::milliseconds{100}); | |||||
} | |||||
} | |||||
BENCHMARK(Sleep100ms, 10); | |||||
// Extremely fast-running benchmark: | // Extremely fast-running benchmark: | ||||
#include <cmath> | #include <cmath> | ||||
volatile double sum = 0.0; // volatile, global so not optimized away | volatile double sum = 0.0; // volatile, global so not optimized away | ||||
static void Trig(benchmark::State &state) { | static void Trig(benchmark::Bench &bench) { | ||||
double d = 0.01; | double d = 0.01; | ||||
while (state.KeepRunning()) { | bench.run([&] { | ||||
sum += sin(d); | sum += sin(d); | ||||
d += 0.000001; | d += 0.000001; | ||||
} | }); | ||||
} | } | ||||
BENCHMARK(Trig, 12 * 1000 * 1000); | BENCHMARK(Trig); |