Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ba70560 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

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
parent 36b1a179
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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();
            }
        }
    }