Files
frameworks_base/apct-tests/perftests/surfaceflinger
Vishnu Nair 0b31685bc7 SurfaceFlingerPerfTests: Reduce variability in results
- use custom interation counter since simpleperf is run over entire test
- move all setup to @Before so its not recorded by simpleperf
- make test activity fullscreen to remove buffer updates from statusbar

Bug: 230039226
Test: atest SurfaceFlingerPerfTest

Change-Id: Id8c03b4dd32c012f091ab602fff780308420742f
2022-09-09 16:26:16 -07:00
..
…
…

SurfaceFlinger performance tests

Precondition

To reduce the variance of the test, if perf-setup.sh (platform_testing/scripts/perf-setup) is available, it is better to use the following instructions to lock CPU and GPU frequencies.

m perf-setup
PERF_SETUP_PATH=/data/local/tmp/perf-setup.sh
adb push $OUT/$PERF_SETUP_PATH $PERF_SETUP_PATH
adb shell chmod +x $PERF_SETUP_PATH
adb shell $PERF_SETUP_PATH

Example to run

Use atest

atest SurfaceFlingerPerfTests:SurfaceFlingerPerfTest -- \
      --module-arg SurfaceFlingerPerfTests:instrumentation-arg:kill-bg:=true

Use am instrument

adb shell am instrument -w -r -e class android.surfaceflinger.SurfaceFlingerPerfTest \
          -e kill-bg true \
          com.android.perftests.surfaceflinger/androidx.test.runner.AndroidJUnitRunner
  • kill-bg is optional.

Test arguments

  • kill-bg
    • boolean: Kill background process before running test.
  • profiling-iterations
    • int: Run the extra iterations with enabling method profiling.
  • profiling-sampling
    • int: The interval (0=trace each method, default is 10) of sample profiling in microseconds.