blob: 42e521445738bc6ae9d90ed55b6455c70b72b734 [file] [log] [blame]
-- For each heap graph dump (upid, ts), builds a flamegraph and outputs:
-- * total_objects_size: the sum of the size (native + java) of all the
-- reachable objects
-- * total_flamegraph_size: the sum of the cumulative size of the roots in the
-- flamegraph
-- If the flamegraph has been built correctly, the numbers should match.
SELECT
obj.upid AS upid,
obj.graph_sample_ts AS ts,
SUM(obj.self_size + obj.native_size) AS total_objects_size,
(
SELECT SUM(cumulative_size)
FROM experimental_flamegraph
WHERE experimental_flamegraph.upid = obj.upid
AND experimental_flamegraph.ts = obj.graph_sample_ts
AND profile_type = 'graph'
AND depth = 0 -- only the roots
) AS total_flamegraph_size
FROM
heap_graph_object AS obj
WHERE
obj.reachable != 0
GROUP BY obj.upid, obj.graph_sample_ts;