• Home
  • History
  • Annotate
  • only in /frameworks/base/tests/ActivityManagerPerfTests/utils/src/com/android/
History log of /frameworks/base/tests/ActivityManagerPerfTests/utils/src/com/android/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ebd2ea0daf7d5bbeba8b6444c81b023ea55becec 13-Feb-2018 Arthur Eubanks <aeubanks@google.com> Start target package by binding to Service, not starting Activity

This reduces the stddev for a bunch of perf tests by quite a bit
(mostly the ones that rely on starting the package).

This is because previously the target
package was made to start running by starting an Activity, which takes
up CPU cycles.

Now we start a Service and wait for it to report back that its Looper
queue is idle, then proceed.

This does seem to slightly increase the runtime for some of the tests
though...

Some test numbers (only tests that have a large difference before and
after):

Before:
registeredBroadcast_mean=1920309
registeredBroadcast_median=1724844
registeredBroadcast_stddev=559809
manifestBroadcastRunning_mean=2395693
manifestBroadcastRunning_median=2063385
manifestBroadcastRunning_stddev=809836
contentProviderRunning_mean=668463
contentProviderRunning_median=588125
contentProviderRunning_stddev=214116
bindServiceAllowOomManagement_mean=1952431
bindServiceAllowOomManagement_median=2017682
bindServiceAllowOomManagement_stddev=289311
bindServiceAlreadyBound_mean=2146257
bindServiceAlreadyBound_median=2022891
bindServiceAlreadyBound_stddev=614549
bindServiceRunning_mean=4947541
bindServiceRunning_median=4710521
bindServiceRunning_stddev=962094
startServiceProcessRunningReadUriPermission_mean=1914106
startServiceProcessRunningReadUriPermission_median=1915209
startServiceProcessRunningReadUriPermission_stddev=196136
startServiceProcessRunning_mean=2841122
startServiceProcessRunning_median=2564792
startServiceProcessRunning_stddev=684654

After:
registeredBroadcast_mean=2559587
registeredBroadcast_median=2579792
registeredBroadcast_stddev=191377
manifestBroadcastRunning_mean=2709707
manifestBroadcastRunning_median=2725365
manifestBroadcastRunning_stddev=165661
contentProviderRunning_mean=663058
contentProviderRunning_median=639062
contentProviderRunning_stddev=97864
bindServiceAllowOomManagement_mean=1899179
bindServiceAllowOomManagement_median=1932553
bindServiceAllowOomManagement_stddev=184329
bindServiceAlreadyBound_mean=2023920
bindServiceAlreadyBound_median=2051614
bindServiceAlreadyBound_stddev=159993
bindServiceRunning_mean=6683975
bindServiceRunning_median=6753699
bindServiceRunning_stddev=475811
startServiceProcessRunningReadUriPermission_mean=2388997
startServiceProcessRunningReadUriPermission_median=2405365
startServiceProcessRunningReadUriPermission_stddev=244184
startServiceProcessRunning_mean=3384101
startServiceProcessRunning_median=3388282
startServiceProcessRunning_stddev=207333

Test: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests
Test: adb install \
$OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk
Test: adb install \
$OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk
Test: adb shell am instrument -w \
com.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner

BUG: 67460485
Change-Id: Iaaaf7d8db885cc1149e74cb7ce4b47a295ab20e4
rameworks/perftests/am/util/Constants.java
rameworks/perftests/am/util/CountDownResultReceiver.java
rameworks/perftests/am/util/Utils.java
20a29576ef3773535d44dec7aadeb17d89bd5f07 09-Jan-2018 Arthur Eubanks <aeubanks@google.com> Add performance tests for Service

Test: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests
Test: adb install \
$OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk
Test: adb install \
$OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk
Test: adb shell am instrument -w -e class \
com.android.frameworks.perftests.am.tests.ServiceStartPerfTest \
com.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner
Test: adb shell am instrument -w -e class \
com.android.frameworks.perftests.am.tests.ServiceBindPerfTest \
com.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner

BUG: 67460485

Change-Id: I16ea5752def13aabd481aeb29f1af0ac04e75f6a
rameworks/perftests/am/util/Constants.java
7156c61c68d23074ac990b1d7556669dcf4d06f3 05-Feb-2018 Arthur Eubanks <aeubanks@google.com> Wait for target package MessageQueue empty before continuing

By using Looper.myQueue().addIdleHandler(), the variance for perf tests
decreases dramatically.

Before:
registeredBroadcast_mean=12162588
registeredBroadcast_median=9496511
registeredBroadcast_stddev=10821157
manifestBroadcastRunning_mean=16673251
manifestBroadcastRunning_median=11859325
manifestBroadcastRunning_stddev=13329366
manifestBroadcastNotRunning_mean=59187569
manifestBroadcastNotRunning_median=55761932
manifestBroadcastNotRunning_stddev=14805616

Now:
registeredBroadcast_mean=940791
registeredBroadcast_median=889583
registeredBroadcast_stddev=157170
manifestBroadcastRunning_mean=1396281
manifestBroadcastRunning_median=1364531
manifestBroadcastRunning_stddev=189226
manifestBroadcastNotRunning_mean=59161472
manifestBroadcastNotRunning_median=56538781
manifestBroadcastNotRunning_stddev=14414728

Test: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests
Test: adb install \
$OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk
Test: adb install \
$OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk
Test: adb shell am instrument -w
com.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner

Change-Id: I05714294c53f3d013a080dfaa617e1fc92fd14e0
rameworks/perftests/am/util/Constants.java
263d674d598f77a1f91bdfc73be808efd3446133 18-Dec-2017 Arthur Eubanks <aeubanks@google.com> Add performance test for BroadcastReceiver

This is intended to be the first of multiple performance tests around
ActivityManager.

This also refactors some of the existing performance utils so that a
BenchmarkState which accepts the elapsed time rather than measures it
can be added (ManualBenchmarkState).

This test measures the current time, sends a Broadcast, the target APK
receives it, measures the current time, and sends its measured time
back to the test APK.

Test: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests
Test: adb install $OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk
Test: adb install $OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk
Test: adb shell am instrument -w -e class \
com.android.frameworks.perftests.am.tests.BroadcastPerfTest \
com.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner

Bug: 67460485

Change-Id: Ib1606ff60c6a845088bde5bd1a33294765b88b36
rameworks/perftests/am/util/Constants.java
rameworks/perftests/am/util/ITimeReceiverCallback.aidl
rameworks/perftests/am/util/Utils.java