## IMF performance tests These tests are adaptation of Window Manager perf tests (apct-tests/perftests/windowmanager). ### Precondition To reduce the variance of the test, if `perf-setup` (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 ImePerfTests:ImePerfTest -- \ --module-arg ImePerfTests:instrumentation-arg:profiling-iterations:=20 ``` Note: `instrumentation-arg:kill-bg:=true` is already defined in the AndroidText.xml Use `am instrument` ``` adb shell am instrument -w -r -e class android.inputmethod.ImePerfTest \ -e listener android.inputmethod.ImePerfRunPrecondition \ -e kill-bg true \ com.android.perftests.inputmethod/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.