1## SurfaceFlinger performance tests 2 3### Precondition 4To reduce the variance of the test, if `perf-setup.sh` (platform_testing/scripts/perf-setup) 5is available, it is better to use the following instructions to lock CPU and GPU frequencies. 6``` 7m perf-setup 8PERF_SETUP_PATH=/data/local/tmp/perf-setup.sh 9adb push $OUT/$PERF_SETUP_PATH $PERF_SETUP_PATH 10adb shell chmod +x $PERF_SETUP_PATH 11adb shell $PERF_SETUP_PATH 12``` 13 14### Example to run 15Use `atest` 16``` 17atest SurfaceFlingerPerfTests:SurfaceFlingerPerfTest -- \ 18 --module-arg SurfaceFlingerPerfTests:instrumentation-arg:kill-bg:=true 19``` 20Use `am instrument` 21``` 22adb shell am instrument -w -r -e class android.surfaceflinger.SurfaceFlingerPerfTest \ 23 -e kill-bg true \ 24 com.android.perftests.surfaceflinger/androidx.test.runner.AndroidJUnitRunner 25``` 26* `kill-bg` is optional. 27 28Test arguments 29- kill-bg 30 * boolean: Kill background process before running test. 31- profiling-iterations 32 * int: Run the extra iterations with enabling method profiling. 33- profiling-sampling 34 * int: The interval (0=trace each method, default is 10) of sample profiling in microseconds. 35