Add interval for relayout perf test

So if there are messages posted to other threads in relayout, they
won't affect the next round to execute relayout. And the continuous
invocation isn't common in the real case.

Bug: 129527548
Test: atest RelayoutPerfTest
Change-Id: I0081fc7a80271ee3dd97c19a6ae7e3bc13ae8a8b
This commit is contained in:
Riddle Hsu
2021-07-27 15:05:29 +08:00
parent 36b1a17984
commit 9ba705609f

View File

@@ -22,6 +22,7 @@ import android.app.Activity;
import android.content.Context;
import android.graphics.Point;
import android.os.RemoteException;
import android.os.SystemClock;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.perftests.utils.PerfTestActivity;
@@ -124,6 +125,12 @@ public class RelayoutPerfTest extends WindowManagerPerfTestBase
}
private static class RelayoutRunner {
/**
* There may be some messages post to other threads with holding WM lock after relayout.
* Let it take a break to avoid lock contention that isn't the scope of this test.
*/
private static final long INTERVAL_MS = 10;
final ClientWindowFrames mOutFrames = new ClientWindowFrames();
final MergedConfiguration mOutMergedConfiguration = new MergedConfiguration();
final InsetsState mOutInsetsState = new InsetsState();
@@ -158,6 +165,9 @@ public class RelayoutPerfTest extends WindowManagerPerfTestBase
mViewVisibility.getAsInt(), mFlags, mFrameNumber, mOutFrames,
mOutMergedConfiguration, mOutSurfaceControl, mOutInsetsState, mOutControls,
mOutSurfaceSize);
state.pauseTiming();
SystemClock.sleep(INTERVAL_MS);
state.resumeTiming();
}
}
}