Loading apct-tests/perftests/utils/src/android/perftests/utils/BenchmarkState.java +14 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.Instrumentation; import android.os.Bundle; import android.os.Debug; import android.os.Trace; import android.util.Log; import androidx.test.InstrumentationRegistry; Loading Loading @@ -129,17 +130,23 @@ public final class BenchmarkState { } private void beginWarmup() { Trace.beginSection("Warmup"); mStartTimeNs = System.nanoTime(); mIteration = 0; mState = WARMUP; } private void endWarmup() { Trace.endSection(); } private void beginBenchmark(long warmupDuration, int iterations) { if (ENABLE_PROFILING) { File f = new File(InstrumentationRegistry.getContext().getDataDir(), "benchprof"); Log.d(TAG, "Tracing to: " + f.getAbsolutePath()); Debug.startMethodTracingSampling(f.getAbsolutePath(), 16 * 1024 * 1024, 100); } Trace.beginSection("Benchmark"); mMaxIterations = (int) (TARGET_TEST_DURATION_NS / (warmupDuration / iterations)); mMaxIterations = Math.min(MAX_TEST_ITERATIONS, Math.max(mMaxIterations, MIN_TEST_ITERATIONS)); Loading @@ -150,6 +157,10 @@ public final class BenchmarkState { mStartTimeNs = System.nanoTime(); } private void endBenchmark() { Trace.endSection(); } private boolean startNextTestRun() { final long currentTime = System.nanoTime(); mResults.add((currentTime - mStartTimeNs - mPausedDurationNs) / mMaxIterations); Loading @@ -165,6 +176,7 @@ public final class BenchmarkState { return true; } mState = FINISHED; endBenchmark(); return false; } mPausedDurationNs = 0; Loading @@ -189,6 +201,7 @@ public final class BenchmarkState { // don't yet have a target iteration count. final long duration = System.nanoTime() - mStartTimeNs; if (mIteration >= WARMUP_MIN_ITERATIONS && duration >= WARMUP_DURATION_NS) { endWarmup(); beginBenchmark(duration, mIteration); } return true; Loading @@ -208,6 +221,7 @@ public final class BenchmarkState { mCustomizedIterations++; if (mCustomizedIterations >= mMaxCustomizedIterations) { mState = FINISHED; endBenchmark(); return false; } mCustomizedIterationListener.onStart(mCustomizedIterations); Loading Loading
apct-tests/perftests/utils/src/android/perftests/utils/BenchmarkState.java +14 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.Instrumentation; import android.os.Bundle; import android.os.Debug; import android.os.Trace; import android.util.Log; import androidx.test.InstrumentationRegistry; Loading Loading @@ -129,17 +130,23 @@ public final class BenchmarkState { } private void beginWarmup() { Trace.beginSection("Warmup"); mStartTimeNs = System.nanoTime(); mIteration = 0; mState = WARMUP; } private void endWarmup() { Trace.endSection(); } private void beginBenchmark(long warmupDuration, int iterations) { if (ENABLE_PROFILING) { File f = new File(InstrumentationRegistry.getContext().getDataDir(), "benchprof"); Log.d(TAG, "Tracing to: " + f.getAbsolutePath()); Debug.startMethodTracingSampling(f.getAbsolutePath(), 16 * 1024 * 1024, 100); } Trace.beginSection("Benchmark"); mMaxIterations = (int) (TARGET_TEST_DURATION_NS / (warmupDuration / iterations)); mMaxIterations = Math.min(MAX_TEST_ITERATIONS, Math.max(mMaxIterations, MIN_TEST_ITERATIONS)); Loading @@ -150,6 +157,10 @@ public final class BenchmarkState { mStartTimeNs = System.nanoTime(); } private void endBenchmark() { Trace.endSection(); } private boolean startNextTestRun() { final long currentTime = System.nanoTime(); mResults.add((currentTime - mStartTimeNs - mPausedDurationNs) / mMaxIterations); Loading @@ -165,6 +176,7 @@ public final class BenchmarkState { return true; } mState = FINISHED; endBenchmark(); return false; } mPausedDurationNs = 0; Loading @@ -189,6 +201,7 @@ public final class BenchmarkState { // don't yet have a target iteration count. final long duration = System.nanoTime() - mStartTimeNs; if (mIteration >= WARMUP_MIN_ITERATIONS && duration >= WARMUP_DURATION_NS) { endWarmup(); beginBenchmark(duration, mIteration); } return true; Loading @@ -208,6 +221,7 @@ public final class BenchmarkState { mCustomizedIterations++; if (mCustomizedIterations >= mMaxCustomizedIterations) { mState = FINISHED; endBenchmark(); return false; } mCustomizedIterationListener.onStart(mCustomizedIterations); Loading