aboutsummaryrefslogtreecommitdiff
path: root/src/bench/examples.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bench/examples.cpp')
-rw-r--r--src/bench/examples.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/bench/examples.cpp b/src/bench/examples.cpp
new file mode 100644
index 0000000000..b68c9cd156
--- /dev/null
+++ b/src/bench/examples.cpp
@@ -0,0 +1,34 @@
+// Copyright (c) 2015-2017 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/bench.h>
+#include <validation.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, 10);
+
+// 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, 12 * 1000 * 1000);