am cb41ce5f: am 594db0f1: Merge "bionic benchmarks: limit benchmark run time to 1s real time"

* commit 'cb41ce5f4e942dce66defb76f25b2e7d61f8ab8d':
  bionic benchmarks: limit benchmark run time to 1s real time
This commit is contained in:
Elliott Hughes 2015-01-16 00:54:14 +00:00 committed by Android Git Automerger
commit 927875a7d0

View File

@ -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];