diff options
author | Ioannis Ilkos <ilkos@google.com> | 2024-05-02 19:45:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-05-02 19:45:47 +0000 |
commit | b2cdcb855475e0ccfe22bd913bab92a07c76bebd (patch) | |
tree | 4751b69a501d81439d1a1577fd7fb71d0c4e1157 | |
parent | 76939ce3c4e884cc77486bea44b2b37428f4f301 (diff) | |
parent | 56db88ba56cc8fc445d9354274917cd27e60c26c (diff) | |
download | perfetto-main.tar.gz |
-rw-r--r-- | src/trace_processor/metrics/sql/android/java_heap_class_stats.sql | 5 | ||||
-rw-r--r-- | test/trace_processor/diff_tests/metrics/profiling/tests.py | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/trace_processor/metrics/sql/android/java_heap_class_stats.sql b/src/trace_processor/metrics/sql/android/java_heap_class_stats.sql index 4fb79c3f6..531b440d4 100644 --- a/src/trace_processor/metrics/sql/android/java_heap_class_stats.sql +++ b/src/trace_processor/metrics/sql/android/java_heap_class_stats.sql @@ -28,11 +28,12 @@ SELECT FROM memory_heap_graph_dominator_tree tree JOIN heap_graph_object obj USING(id) UNION ALL --- tree partition below requires a single root. +-- provide a single root required by tree partition if heap graph exists. SELECT memory_heap_graph_super_root_fn() AS id, NULL AS parent_id, - (SELECT MAX(id) + 1 FROM heap_graph_class) AS group_key; + (SELECT MAX(id) + 1 FROM heap_graph_class) AS group_key +WHERE memory_heap_graph_super_root_fn() IS NOT NULL; DROP TABLE IF EXISTS _heap_object_marked_for_dominated_stats; CREATE PERFETTO TABLE _heap_object_marked_for_dominated_stats AS diff --git a/test/trace_processor/diff_tests/metrics/profiling/tests.py b/test/trace_processor/diff_tests/metrics/profiling/tests.py index 21cb8265e..94dea75a4 100644 --- a/test/trace_processor/diff_tests/metrics/profiling/tests.py +++ b/test/trace_processor/diff_tests/metrics/profiling/tests.py @@ -115,3 +115,12 @@ class ProfilingMetrics(TestSuite): trace=Path('heap_graph.textproto'), query=Metric('java_heap_class_stats'), out=Path('java_heap_class_stats.out')) + + def test_java_heap_class_stats_no_heap_graph(self): + return DiffTestBlueprint( + trace=Path('heap_profile_no_symbols.textproto'), + query=Metric('java_heap_class_stats'), + out=TextProto(r""" + java_heap_class_stats { + } + """)) |