We want to eventually migrate some of these APIs to be @SystemApi for mainline modules.
The #dumpDebug name is more appropriate than #writeToProto.
Bug: 142279786
Test: Manual
Change-Id: I60793e91cedf6b720d4ecef6a8484f4fed4ff30f
This allows us to quickly test small changes in layout inflation performance.
TEST: mma &&
adb install $OUT/system/app/startop_test_app/startop_test_app.apk;
Run the app
Change-Id: I396157686d1e16ae2a7083a070fe1f622c05b15f
Replaces the SystemServer Benchmark activity with one that has
several sets of benchmarks grouped into categories. This will make it
easier to add more benchmarks that do not logically fit with the
categories we already have.
This does not remove any of the other benchmark activities, but in a
follow up CL, we should remove those since they are covered by the
Interactive Microbenchmarks activity.
This also does not adjust the non-interactive mode, which should also
happen in a followup.
Change-Id: I1d079362df0d32642525ede5b41779d76a5735ec
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