tp: binder_tracker: fix performance issue due to insert/erase heavy workload + FlatHashMap On a 10 minute trace with ~500k binder_transaction events, ~50% of the trace parsing time is spent in binder_tracker due to a performance issue in FlatHashMap. The map implementation never cleans tombstones outside of a resize, so a heavy insert+erase workload degrades to full scans of the hash map's capacity (since it becomes 100% full with tombstones). For now, fix by switching to std::unordered_map. Myself and Primiano will look into improving the hash table itself next week. Change-Id: Iedca0e490e4a024fb59b84b485be250bd579f9d3
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.