-
-
-
Memory Allocations
-
({sortedAllocations.length} allocations)
+
+
+
+
Potential Leaks
+
({leakCandidates.length} suspicious)
+ {leakSummary.high > 0 && (
+
+ {leakSummary.high} high
+
+ )}
+ {leakSummary.medium > 0 && (
+
+ {leakSummary.medium} medium
+
+ )}
+ {leakSummary.low > 0 && (
+
+ {leakSummary.low} low
+
+ )}
+
+
+ Stacks whose live bytes remain a large fraction of what they ever allocated (retention), optionally with
+ live bytes trending upward over the last minute. Growth + high retention together is the strongest leak
+ signal.
+
+
+
+
+
+ {/* Live Heap Allocations — what's currently consuming the heap */}
+
+
+
+
+ Live Heap Allocations
+ ({sortedInuseAllocations.length} sites)
+
+
+ Call stacks currently holding memory on the heap right now — expand a row to see the full stack.
+
+
+
+
+
+ {/* Cumulative Memory Allocations — total since process start */}
+
+
+
+
+ Cumulative Memory Allocations
+ ({sortedAllocations.length} sites)
+
+
+ Total bytes allocated since process start (includes memory already freed) — expand a row to see the full stack.
+
diff --git a/ui/lib/store/apis/devApi.ts b/ui/lib/store/apis/devApi.ts
index e8cc281dd3..355b320fdc 100644
--- a/ui/lib/store/apis/devApi.ts
+++ b/ui/lib/store/apis/devApi.ts
@@ -32,6 +32,7 @@ export interface AllocationInfo {
line: number
bytes: number
count: number
+ stack: string[]
}
// Single point in the metrics history
@@ -51,6 +52,7 @@ export interface PprofData {
cpu: CPUStats
runtime: RuntimeStats
top_allocations: AllocationInfo[]
+ inuse_allocations: AllocationInfo[]
history: HistoryPoint[]
}