commit | eede1a75fd04402b7a0b3905edb91e769019195e | [log] [tgz] |
---|---|---|
author | Rafal Slawik <rslawik@google.com> | Mon Jun 01 18:38:55 2020 +0100 |
committer | Rafal Slawik <rslawik@google.com> | Mon Jun 01 18:38:55 2020 +0100 |
tree | 97d096eebfd26cc0d32de732c79c333b1106f621 | |
parent | f944ff787246e68c9256ba42184a765faf40ec32 [diff] |
Handle exhaustive time_in_state snapshots The cpu_freq_full marker in ProcessStats.Thread message is used to mark whether a snapshot of time_in_state is exhaustive, i.e. at that point the recorded ticks fully describe spent cpu time for a thread. Without it aggregating across frequencies would undercount the time because values for some frequencies could be skipped due to caching or being zero. Trace processor expands the marker to (frequency, 0) tuples for all missing frequencies. That increases the volume of the data in all exhaustive snapshots by few times (e.g. 8x on my test bonito). Such snapshots only occur after incremental state clearing or for new threads, so the overall impact is smaller. Follow-up after: https://r.android.com/1316160 Bug: 157216280 Test: tools/diff_test_trace_processor.py Change-Id: I8459a04ed4dd0d8a84db0e0b5bea82fd6233f6bb
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://docs.perfetto.dev or the /docs/ directory for documentation.