summaryrefslogtreecommitdiffstats
path: root/benchmarks/benchmark_main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/benchmark_main.cpp')
-rw-r--r--benchmarks/benchmark_main.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/benchmarks/benchmark_main.cpp b/benchmarks/benchmark_main.cpp
index 7140ab6..e922e1e 100644
--- a/benchmarks/benchmark_main.cpp
+++ b/benchmarks/benchmark_main.cpp
@@ -134,19 +134,23 @@ void Benchmark::RunRepeatedlyWithArg(int iterations, int arg) {
}
void Benchmark::RunWithArg(int arg) {
- // run once in case it's expensive
+ // Run once in case it's expensive.
int iterations = 1;
+ int64_t realStartTime = NanoTime();
RunRepeatedlyWithArg(iterations, arg);
- while (g_benchmark_total_time_ns < 1e9 && iterations < 1e9) {
+ int64_t realTotalTime = NanoTime() - realStartTime;
+ while (realTotalTime < 1e9 && iterations < 1e8) {
int last = iterations;
- if (g_benchmark_total_time_ns/iterations == 0) {
+ if (realTotalTime/iterations == 0) {
iterations = 1e9;
} else {
- iterations = 1e9 / (g_benchmark_total_time_ns/iterations);
+ iterations = 1e9 / (realTotalTime/iterations);
}
iterations = std::max(last + 1, std::min(iterations + iterations/2, 100*last));
iterations = Round(iterations);
+ realStartTime = NanoTime();
RunRepeatedlyWithArg(iterations, arg);
+ realTotalTime = NanoTime() - realStartTime;
}
char throughput[100];