mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-08 22:28:03 +00:00
7072c544b5
Avoid calling gettimeofday every time through the benchmarking loop, by keeping track of how long each loop takes and doubling the number of iterations done between time checks when they take less than 1/16'th of the total elapsed time.
35 lines
782 B
C++
35 lines
782 B
C++
// Copyright (c) 2015 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include "bench.h"
|
|
#include "main.h"
|
|
#include "utiltime.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()) {
|
|
MilliSleep(100);
|
|
}
|
|
}
|
|
|
|
BENCHMARK(Sleep100ms);
|
|
|
|
// Extremely fast-running benchmark:
|
|
#include <math.h>
|
|
|
|
volatile double sum = 0.0; // volatile, global so not optimized away
|
|
|
|
static void Trig(benchmark::State& state)
|
|
{
|
|
double d = 0.01;
|
|
while (state.KeepRunning()) {
|
|
sum += sin(d);
|
|
d += 0.000001;
|
|
}
|
|
}
|
|
|
|
BENCHMARK(Trig);
|