This change adds a base activity to inflate views, and then adds two
more views to inflate: one with 1000 TextViews and the other with 1000
FrameLayouts in a LinearLayout nested inside a ScrollView.
This change also adds launcher icons for each of the new cases for
ease in testing a launcher-based start.
Bug: 132721345
Test: Verified that the layout segments appear in traces as expected.
Change-Id: Id8c3e867a1ad5df5c3322ce5d69c9b4255042b69
Compiler will be used for experimentation purpose since it's both easier
to develop in python and it accepts ftrace, making it very easy to write
complicated-experimental changes that we aren't sure are worth it yet
for the on-device C++/perfetto compiler.
This 'new' compiler accepts ftrace/systrace files as input,
then generates an in-memory sqlite3 database (using the trace_analyzer
source code), and finally code-generates a TraceFile.pb protobuf.
(Also refactor trace_analyzer into a library, and update it to
parse systrace.html files)
Limitations: currently does not accept perfetto_trace.pb files due to
'ofs' fields missing (see bug#135555191)
Test: py.test-3 frameworks/base/startop/scripts
Test: ./compiler.py -i tmp_sargo/textcache -t tmp_sargo/trace.html -o tmp/output.pb
Test: ./compiler.py -i tmp_sargo/textcache -t tmp_sargo/trace.html -o tmp/output.pb -f '^/data'
Test: ./trace_analyzer music_run.trace tmp_dbs/12345.db
Bug: 135557978
Bug: 134789969
Change-Id: Ic8295900ee9e634b4cfd8cf99b671ae08d2ea4f7
This CL includes a simple app for testing aspects of startup performance. It
will probably gain new activities as we focus on different parts in
particular. Currently it has an empty activity and an activity that focuses on
layout inflation.
Test: mma, adb install, adb shell start (see README.md for exact commands)
Change-Id: I4e98994f0c25ce61a89d13f86eda2320a1fdcafa
Parse ACTIVITY_FIRST_PREVIEW_FRAME_RECEIVED_ms,ACTIVITY_FIRST_PREVIEW_FRAME_RENDERED_ms
from logcat when running Camera app.
Also updates the scripts to support multiple metrics output (previously
only one allowed). Adding future per-app metrics is also possible by
just adding 1 file with 1 function call with a regex pattern.
Bug: 132649131
Change-Id: Ibfc620bb156f733b69faa7654b06ef35f1a34de3
Adds a simple python parser to convert .ftrace file into
sqlite3 database.
The rest of the analysis logic is done through a series of SQL
commands that build tables/views/select queries.
Bug: 134705245
Test: trace_analyzer some_ftrace_file.trace tmp_file.db
Change-Id: I25274e25a0ab1f091ae4e6161e6726e006e346a5
Input: either pinlist.meta or a text file.
Output: either text file or iorap.TraceFile protobuf.
Also supports looking inside zip files to find out entry offset
automatically.
Bug: 132649131
Change-Id: I638fda1bb11899bb6d123b3aaedb518c0b4d1a80
Script measures app startup times with/without iorapd-based
prefetching against a cold (or warm) baseline.
mlock/fadvise readahead options now use iorapd to exercise
real code to do prefetching.
Bug: 72170747
Change-Id: I28affac3470271e46febb0e22a6dc9543258b4a4
Files failing automerge from AOSP.
See build/soong/README.md for more information.
Bug: 122332340
Test: treehugger
Change-Id: I92f7584aeaf502336f67e04fbc22634784c9305d
Merged-In: I92f7584aeaf502336f67e04fbc22634784c9305d
Files failing automerge from AOSP.
See build/soong/README.md for more information.
Bug: 122332340
Test: treehugger
Change-Id: I92f7584aeaf502336f67e04fbc22634784c9305d
libz is already linked as a static library through
libdexfile_static_defaults, don't also link it as a shared library.
Fixes:
=================================================================
==43189==ERROR: AddressSanitizer: odr-violation (0x55d1ed723a60):
[1] size=48 'inflate_copyright' external/zlib/src/inftrees.c:11:12
[2] size=48 'inflate_copyright' external/zlib/src/inftrees.c:11:12
These globals were registered at these points:
[1]:
#0 0x55d1ed769a0e (/buildbot/src/android/master/out/soong/host/linux-x86/bin/viewcompiler+0xf3a0e)
#1 0x55d1ed991b1b (/buildbot/src/android/master/out/soong/host/linux-x86/bin/viewcompiler+0x31bb1b)
[2]:
#0 0x55d1ed769a0e (/buildbot/src/android/master/out/soong/host/linux-x86/bin/viewcompiler+0xf3a0e)
#1 0x7f5dff20a09b (/buildbot/src/android/master/out/soong/host/linux-x86/bin/../lib64/libz-host.so+0x3e09b)
Test: m SANITIZE_HOST=address viewcompiler && viewcompiler
Change-Id: I4ebdf7ef4ec1641488fbc25275dbf6aa0cdbe2eb
Add a new JobService which executes every 24 hours during idle
maintenance (idle + plugged in). This does no work itself
other than call into iorapd to begin any arbitrary batch jobs.
In a future system/iorap CL, this functionality will be used to
implement trace compilations (converting multiple perfetto trace
protos into a single trace profile proto).
Bug: 72170747
Test: adb shell cmd jobscheduler run -f android 283673059
Change-Id: I46cfcb4f0fa5cf6a1ef03348e93ea949ca1bd07c
This was causing the viewcompiler to crash on deeper layout hierarchies.
We fix this by reserving several scratch registers. When an invoke instruction
uses registers that don't fit in a 4-bit field, we move all of these values into
the scratch registers and use an invoke/range instruction instead. The scratch
registers are all above the highest allocated register, so they are guaranteed
not to clobber meaningful values.
Supporting more registers for invoke also required supporting
register-to-register moves, which some how we'd gotten by without so far.
Finally, to make viewcompiler fail more loudly when things go wrong, many
DCHECKs have been changed to CHECKs.
Bug: 123517491
Test: atest
Change-Id: I9eb7c9bcf1fc7d713e664b331804bdcddafc95a4
PrecompiledLayoutTest makes sure that layouts generated by the viewcompiler are
equivalent to inflating from the resource XML file. We'll want to run these
tests when making changes to the viewcompiler.
Bug: 111895153
Test: atest
Change-Id: Iffa6f0f01c3f43d43feaabd1a5cd36be76650975
Rename from iorapd.enable to ro.iorapd.enable to match init scripts.
This avoids logspam when iorapd is disabled.
Bug: 123637697
Test: reboot and look at logcat
Change-Id: I741071918ba16191890f3fe3de3764013e0e4ee1