Taran Singh bf33706655 Measure baseline IMF latency (1/n)
Measure latency caused by IMF for IME operations like show / hide.
This CL uses apct tests for integration with Crystallball to measure
overall latency and breakdown of critical IMF methods.
In this CL we introduce a BaselineIme with minimal UI to measure
user-preceived delays in IME show/hide.
Refer to design doc in bug.

Bug: 167947940
Test: atest ImePerfTests and also refer to README.md
Change-Id: I8efff52fe25952d452aef7f059400c63d1a9fa4a
2020-11-11 18:05:26 +00:00

1.3 KiB

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.