commit | dd7f6dce12b2d72e26cafe7132a67eb4f40ebb00 | [log] [tgz] |
---|---|---|
author | Stephen Nusko <nuskos@google.com> | Thu Nov 26 17:04:08 2020 -0500 |
committer | Lalit Maganti <lalitm@google.com> | Mon Dec 07 13:14:04 2020 +0000 |
tree | 7c2c9569f03518f1b6d11d344a65caa4c4a06754 | |
parent | 737dcadd4f09cb5266d456f578b43c7c290769a6 [diff] |
Add new dynamic table to look up ancestors of CPU stack samples. This removes the need for a recursive query which is a significant performance bottle neck. I validated the results on a test trace with results here: https://docs.google.com/spreadsheets/d/1whwjzHbU7QQ1iaR3W-dqLRRBxl5LAY5NKnBeRmidFCk/edit?usp=sharing&resourcekey=0-5u4EtMsfmDyD1X_lvLi9CA The new method just skips a row in the validation which was repeated in the recursive query (I think this was a bug? please double check though). Trying on the example trace in the bug and selecting a stack sample from ChromeIOThread over the IOHandler::OnIOCompleted the performance was similar. This does not bode well for this fix. Bug: 168056830 Change-Id: I89f2e042d0d4dc43f424272e71aced4c0c426346
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://perfetto.dev/docs or the /docs/ directory for documentation.