commit | c0f481003b889aadb7b367e1546065626655e3b5 | [log] [tgz] |
---|---|---|
author | Ryan Savitski <rsavitski@google.com> | Tue Apr 14 17:20:56 2020 +0100 |
committer | Ryan Savitski <rsavitski@google.com> | Tue Apr 14 16:21:39 2020 +0000 |
tree | 7f964c6c446bc617318ac36f2b71d7bae861cbec | |
parent | fa3fa65e8d0dd0b2d6c3f78c9a9810fd60d437c7 [diff] |
traced_perf: optional periodic unwinder cache clearing Preface: * targeting muiltiple processes at once is normal for this profiler. * unwindstack cache seems quite necessary in practice (for cpu%), but also doesn't actually have an inherent limit (so over time, footprint will grow to cover unwinding for all sampled processes). * for longer traces, it's likely that the working set necessary at any given medium-term interval is much lower than the aforementioned worst case (so periodic clears could help). * we want to try using ring buffer traces (with a finalization trigger) with stack sampling in the field. I don't want to change the libunwindstack cache atm, so using it as-is. Periodic clears are a bit crude, and I've considered alternatives (think a memory guardrail that does this purging when hit, instead of shutting down the data source / daemon). But stopping at a periodic option for now. Separate from incremental state clears since it's a heavy operation, which should be performed infrequently. While incremental state clearing needs to be frequent enough to make any given ring buffer snapshot have most of the necessary incremental state for decoding. Thoughts/suggestions welcomed. I'm kinda struggling with building a good set of knobs for controlling the memory usage when running as an unattended daemon. Bug: 144281346 Change-Id: I6342fa636c9ee7eca214a7be4c74c0b187246b0f
Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.
See www.perfetto.dev for docs.
See /docs/contributing.md for instructions.
The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.
You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev
on Freenode.