Factor SizeProfileComputer out of protoprofile tool - This separates Trace proto content breakdown and pprof profile generation into two distinct classes. The former can be reused for other output formats (for example, SQL tables). This is the main goal of this change. - This also replaces std::map's with base::FlatHashMap's - the new version is ~30-40% faster on the traces I've checked. - I've compared generated pprof profile protos for the current vs the new version - the field ordering in the proto is different, but the resulting profiles look the same for a few traces I've checked, so the protoprofile tool behavior should not change. Bug: b/238062136 Change-Id: Ic07b0da53640f15eb2b48d820b6fe565f0ec67eb
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.