ui: introduce new flamegraph widget and use it for java heap dumps
This CL introduces a new flamgraph widget which is far superior to the
existing flamgraph implementation in many ways:
- supports filtering stacks/frames
- sources data from any arbitrary source, not use hardcoded use of
experimental_flamgraph
- improves the UX for hover
- collapses linked lists (and other recursive data structures) down
instead of arbitrarily truncating
This CL also starts using this widget in the Java heap graph details
panel as that was the use-case which is suffering the most right now.
For example, the runtime of a dominator tree flamegraph has been
cut from multiple minutes to 5s.
Also while I'm here, improve the heap profile track query as well to
be significantly better.
Change-Id: Ib8444b642e78e69b041adde716976c2f3822c92f
diff --git a/Android.bp b/Android.bp
index 7bd6f16..6de0fdc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13244,6 +13244,7 @@
"src/trace_processor/perfetto_sql/stdlib/time/conversion.sql",
"src/trace_processor/perfetto_sql/stdlib/v8/jit.sql",
"src/trace_processor/perfetto_sql/stdlib/viz/core_type.sql",
+ "src/trace_processor/perfetto_sql/stdlib/viz/flamegraph.sql",
"src/trace_processor/perfetto_sql/stdlib/viz/summary/counters.sql",
"src/trace_processor/perfetto_sql/stdlib/viz/summary/processes.sql",
"src/trace_processor/perfetto_sql/stdlib/viz/summary/slices.sql",