bionic: change properties benchmarks to read a single property
The properties benchmarks were reading n properties from a property
area with n properties in it, which was making it hard to compare
the time between runs of different sizes. Change the benchmark
to read a random property per iteration so the numbers between
runs are comparable.
Change-Id: Ib1648ce0948d9038fce76d209608427376cfb8da
diff --git a/tests/property_benchmark.cpp b/tests/property_benchmark.cpp
index dbd11ad..5acd06c 100644
--- a/tests/property_benchmark.cpp
+++ b/tests/property_benchmark.cpp
@@ -87,12 +87,12 @@
LocalPropertyTestState pa(nprops);
char value[PROP_VALUE_MAX];
+ srandom(iters * nprops);
+
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
- for (int j = 0; j < nprops; j++) {
- __system_property_get(pa.names[j], value);
- }
+ __system_property_get(pa.names[random() % nprops], value);
}
StopBenchmarkTiming();
}
@@ -104,12 +104,12 @@
LocalPropertyTestState pa(nprops);
+ srandom(iters * nprops);
+
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
- for (int j = 0; j < nprops; j++) {
- __system_property_find(pa.names[j]);
- }
+ __system_property_find(pa.names[random() % nprops]);
}
StopBenchmarkTiming();
}