Add a benchmark to test the cost of initialization checks. The
application run with JIT versus AOT shows the cost of initialization
checks of other classes.
Bug: none
Test: run the test, compile, run the test again
Change-Id: Ic15d872e2284084e003056849453150fb533ca81
* changes:
startop: Add reportFullyDrawn event support in Iorap.
startop: Add timestamps for IntentStarted and ActivityLaunchFinished.
startop: Add reportFullyDrawn event support in framework.
This change adds some of the top binder calls from AppOpsManager, UserManager,
and ConnectivityManager.
Change-Id: I8c87a5d58d68b962927c4886c1bba90f3976d587
ActivityManagerService.getPackageForIntentSender is the second most common
binder transaction during an MPTS run.
Change-Id: I628857d9f323102db3d66da0311f36554cbd797b
This allows benchmarking system server when not sitting at the device. To use
it, launch the NonInteractiveSystemServerBenchmarkActivity and then wait awhile.
The benchmark results will be available at
/sdcard/Android/data/com.android.startop.test/files/benchmark.csv
Change-Id: If7697657228f6e631846fdb79a5a5acfdaf7fe65
This change does a better job of separating the UI code from the benchmark
running code, with the goal of enabling a non-interactive version of the
benchmarks.
Change-Id: Id7a673b9abca69cd9643a487f7b05f965e1f2614
Bug: 137684347
Test: make
Test: run on a crosshatch device and check the reportFullyDrawn event in
the logcat.
Change-Id: Ib8373ecfa1d3579c937242d30cea1ce1396ba632
The pattern is shown in logcat and should match the text in iorap.
Test: python app_startup_runner.py --package com.google.android.GoogleCamera --readahead fadvise --inodes ../tmp.txt -d
Bug: 142350683
Change-Id: Ia708ea8d29f4c97126e9e721284a0d346e19573b
Reducing device/host differences. This is now required since libutils
Trace.h always calls the libcutils functions, instead of before where
it only called these functions on device.
Bug: 124524556
Test: build & boot
Change-Id: Ic096ed7caf8ca59292b3427a16c4e2545d12dfd9
In order to understand how simpleperf reports percentages from a whole
system, craft a benchmark set that runs a CPU-intensive thread a number
of times.
Bug: none
Test: run the app
Change-Id: I7c8748f9b5da89be20775a5af60b223d4673023b
The code was previously pretty messy and hard to follow. This reworks some
things to make it more manageable. Among the changes:
* Pull out fragments of code into their own method, so the high level steps are
more apparent in methods like DexViewBuilder::Start.
* Pull frequently used types into global constants in dex_layout_compiler.cc.
* Rework register handling to track liveness so a strict stack discipline is no
longer needed.
Change-Id: Idb4b41f88c96a1ac4efb2c7b9bed05c2de0da999
Especially for short running methods, this gives us better results and also
gives us more data for things like simpleperf to work on.
Since we don't know ahead of time how many times each benchmark will run, we had
to switch the mean and standard deviation formulas to one that supports running
updates. This has the advantage of making it constant space.
Bug: 140743821
Change-Id: I3e6b6b44d3bd573bad8afc8831226194147b108a
When using device, the python modules for host are not loaded to be
compatiable in tradefed.
Test: pytest
Test: python app_startup_runner.py --package com.google.android.GoogleCamera --readahead fadvise --inodes textcache --output output.txt -lc 1 -d
Change-Id: I9fe54045fbabda5f66ebe1cfe6d0a5461fff0640
This adds a simple activity to the Startop Test App for non-scientific
interactive benchmark running for system_server APIs.
Bug: 140743821
Change-Id: I5485152bde4a791035c71d7b3f23e8cff9649292
The existing LayoutCompilerTest only covered compiled layouts generated from
text XML files. It did not cover layouts that were extracted from the APK. This
is an important area to cover.
This test works by calling `pm compile --compile-layouts` on the test APK, and
then directly loads the `compiled_view.dex` file. From there, it pulls out the
compiled layouts and executes their inflater. This makes sure the generated DEX
files validate and execute without error.
Bug: 111895153
Merged-In: Ifc6719c2f438474b5474def02422ef68eee800b2
Change-Id: I7024069bb4d77a81871366f259fb34ae54a55aac
The existing LayoutCompilerTest only covered compiled layouts generated from
text XML files. It did not cover layouts that were extracted from the APK. This
is an important area to cover.
This test works by calling `pm compile --compile-layouts` on the test APK, and
then directly loads the `compiled_view.dex` file. From there, it pulls out the
compiled layouts and executes their inflater. This makes sure the generated DEX
files validate and execute without error.
Bug: 111895153
Change-Id: Ifc6719c2f438474b5474def02422ef68eee800b2
The time in timestamp is second, while the trace duration is
millisecond. Using timedelta to fix this ambiguity.
Test: pytest compiler_test.py
Change-Id: I6c445c3dac1b60aec77ead14df021b8a2dda7b5e
This test is problematic because it links against libdexfile and we would like
to remove this dependency. All of the functionality covered by this test is also
tested more thoroughly by the on-device dex-builder-test, so there's no reason
to test it here as well.
Change-Id: Ie45d4a1c99668b68476168fc072a220fa5db3695