memorydetective 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -1
- package/README.md +15 -11
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/parsers/referenceTree.d.ts +46 -8
- package/dist/parsers/referenceTree.js +194 -11
- package/dist/parsers/referenceTree.js.map +1 -1
- package/dist/runtime/responseFormatter.d.ts +24 -1
- package/dist/runtime/responseFormatter.js +109 -2
- package/dist/runtime/responseFormatter.js.map +1 -1
- package/dist/tools/analyzeAbandonedMemory.d.ts +26 -4
- package/dist/tools/analyzeAbandonedMemory.js +45 -7
- package/dist/tools/analyzeAbandonedMemory.js.map +1 -1
- package/dist/tools/analyzeAllocations.d.ts +3 -3
- package/dist/tools/analyzeAnimationHitches.d.ts +3 -3
- package/dist/tools/analyzeAppLaunch.d.ts +3 -3
- package/dist/tools/analyzeHangs.d.ts +3 -3
- package/dist/tools/analyzeMemgraph.d.ts +22 -3
- package/dist/tools/analyzeMemgraph.js +18 -4
- package/dist/tools/analyzeMemgraph.js.map +1 -1
- package/dist/tools/analyzeTimeProfile.d.ts +3 -3
- package/dist/tools/cleanupTraces.d.ts +4 -4
- package/dist/tools/diffMemgraphs.d.ts +59 -6
- package/dist/tools/diffMemgraphs.js +99 -2
- package/dist/tools/diffMemgraphs.js.map +1 -1
- package/dist/tools/inspectTrace.d.ts +72 -0
- package/dist/tools/inspectTrace.js +181 -0
- package/dist/tools/inspectTrace.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeAbandonedMemory.js","sourceRoot":"","sources":["../../src/tools/analyzeAbandonedMemory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzeAbandonedMemory.js","sourceRoot":"","sources":["../../src/tools/analyzeAbandonedMemory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,15 @@ export declare const analyzeAllocationsSchema: z.ZodObject<{
|
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
6
6
|
minBytes: z.ZodDefault<z.ZodNumber>;
|
|
7
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
7
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
8
8
|
}, "strip", z.ZodTypeAny, {
|
|
9
9
|
tracePath: string;
|
|
10
10
|
topN: number;
|
|
11
11
|
minBytes: number;
|
|
12
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
12
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
13
13
|
}, {
|
|
14
14
|
tracePath: string;
|
|
15
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
15
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
16
16
|
topN?: number | undefined;
|
|
17
17
|
minBytes?: number | undefined;
|
|
18
18
|
}>;
|
|
@@ -14,19 +14,19 @@ export declare const analyzeAnimationHitchesSchema: z.ZodObject<{
|
|
|
14
14
|
startMs: number;
|
|
15
15
|
endMs: number;
|
|
16
16
|
}>>;
|
|
17
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
17
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
18
18
|
}, "strip", z.ZodTypeAny, {
|
|
19
19
|
tracePath: string;
|
|
20
20
|
topN: number;
|
|
21
21
|
minDurationMs: number;
|
|
22
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
22
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
23
23
|
timeRangeMs?: {
|
|
24
24
|
startMs: number;
|
|
25
25
|
endMs: number;
|
|
26
26
|
} | undefined;
|
|
27
27
|
}, {
|
|
28
28
|
tracePath: string;
|
|
29
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
29
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
30
30
|
topN?: number | undefined;
|
|
31
31
|
minDurationMs?: number | undefined;
|
|
32
32
|
timeRangeMs?: {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const analyzeAppLaunchSchema: z.ZodObject<{
|
|
3
3
|
tracePath: z.ZodString;
|
|
4
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
4
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
5
5
|
}, "strip", z.ZodTypeAny, {
|
|
6
6
|
tracePath: string;
|
|
7
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
7
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
8
8
|
}, {
|
|
9
9
|
tracePath: string;
|
|
10
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
10
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
11
11
|
}>;
|
|
12
12
|
export type AnalyzeAppLaunchInput = z.infer<typeof analyzeAppLaunchSchema>;
|
|
13
13
|
export interface PhaseEntry {
|
|
@@ -15,12 +15,12 @@ export declare const analyzeHangsSchema: z.ZodObject<{
|
|
|
15
15
|
endMs: number;
|
|
16
16
|
}>>;
|
|
17
17
|
topFramesByHangStartNs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
18
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
18
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
19
19
|
}, "strip", z.ZodTypeAny, {
|
|
20
20
|
tracePath: string;
|
|
21
21
|
topN: number;
|
|
22
22
|
minDurationMs: number;
|
|
23
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
23
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
24
24
|
timeRangeMs?: {
|
|
25
25
|
startMs: number;
|
|
26
26
|
endMs: number;
|
|
@@ -28,7 +28,7 @@ export declare const analyzeHangsSchema: z.ZodObject<{
|
|
|
28
28
|
topFramesByHangStartNs?: Record<string, string> | undefined;
|
|
29
29
|
}, {
|
|
30
30
|
tracePath: string;
|
|
31
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
31
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
32
32
|
topN?: number | undefined;
|
|
33
33
|
minDurationMs?: number | undefined;
|
|
34
34
|
timeRangeMs?: {
|
|
@@ -8,21 +8,21 @@ export declare const analyzeMemgraphSchema: z.ZodObject<{
|
|
|
8
8
|
verbosity: z.ZodDefault<z.ZodEnum<["compact", "normal", "full"]>>;
|
|
9
9
|
maxClassesInChain: z.ZodDefault<z.ZodNumber>;
|
|
10
10
|
referenceTreeTopN: z.ZodDefault<z.ZodNumber>;
|
|
11
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
11
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
12
12
|
}, "strip", z.ZodTypeAny, {
|
|
13
13
|
path: string;
|
|
14
14
|
fullChains: boolean;
|
|
15
15
|
verbosity: "compact" | "normal" | "full";
|
|
16
16
|
maxClassesInChain: number;
|
|
17
17
|
referenceTreeTopN: number;
|
|
18
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
18
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
19
19
|
}, {
|
|
20
20
|
path: string;
|
|
21
21
|
fullChains?: boolean | undefined;
|
|
22
22
|
verbosity?: "compact" | "normal" | "full" | undefined;
|
|
23
23
|
maxClassesInChain?: number | undefined;
|
|
24
24
|
referenceTreeTopN?: number | undefined;
|
|
25
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
25
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
26
26
|
}>;
|
|
27
27
|
export type AnalyzeMemgraphInput = z.infer<typeof analyzeMemgraphSchema>;
|
|
28
28
|
export interface CycleSummary {
|
|
@@ -77,8 +77,27 @@ export interface AnalyzeMemgraphResult {
|
|
|
77
77
|
* not formal leaks; they are reachable-but-suspicious and worth diffing
|
|
78
78
|
* against a baseline via `analyzeAbandonedMemory(before, after)` for
|
|
79
79
|
* the verdict.
|
|
80
|
+
*
|
|
81
|
+
* **Raw view.** Includes framework noise (NSMutableDictionary, CFString,
|
|
82
|
+
* libMainThreadChecker bss, etc.) that grows with normal app activity
|
|
83
|
+
* and is rarely the actionable leak. Useful for cache-bloat or
|
|
84
|
+
* collection-explosion investigations.
|
|
80
85
|
*/
|
|
81
86
|
abandonedMemoryTop?: ReferenceTreeEntry[];
|
|
87
|
+
/**
|
|
88
|
+
* Same top-N reference-tree analysis as `abandonedMemoryTop` but filtered
|
|
89
|
+
* to actionable classes only. Foundation collection types (NSMutableDictionary,
|
|
90
|
+
* CFString, ...), ObjC runtime metadata (Class.data, OBJC_METACLASS_),
|
|
91
|
+
* Apple-framework static-data sections (__DATA __bss / __data / __common),
|
|
92
|
+
* Stack of thread / non-object / VM region rows, and the `<<TOTAL>>`
|
|
93
|
+
* summary are all excluded. The remaining list surfaces AV*, KVO*,
|
|
94
|
+
* SwiftUI app-level types, user-named classes, and other classes the
|
|
95
|
+
* fix would actually live in. New in v1.10.
|
|
96
|
+
*
|
|
97
|
+
* Use this list for the "what should I worry about?" question; use
|
|
98
|
+
* `abandonedMemoryTop` for "what's the full heap distribution?".
|
|
99
|
+
*/
|
|
100
|
+
abandonedMemorySuspects?: ReferenceTreeEntry[];
|
|
82
101
|
}
|
|
83
102
|
/**
|
|
84
103
|
* Pure function: take a `leaks` stdout string and a source path, produce a structured analysis.
|
|
@@ -3,7 +3,7 @@ import { existsSync } from "node:fs";
|
|
|
3
3
|
import { resolve as resolvePath } from "node:path";
|
|
4
4
|
import { runCommand } from "../runtime/exec.js";
|
|
5
5
|
import { parseLeaksOutput, rootCyclesOnly } from "../parsers/leaksOutput.js";
|
|
6
|
-
import { parseReferenceTreeText, } from "../parsers/referenceTree.js";
|
|
6
|
+
import { parseReferenceTreeText, isFrameworkNoise, } from "../parsers/referenceTree.js";
|
|
7
7
|
import { outputFormatField } from "../runtime/responseFormatter.js";
|
|
8
8
|
import { shortenForVerbosity, } from "../parsers/shortenClassName.js";
|
|
9
9
|
import { suggestionClassifyCycle, suggestionReachableFromCycle, } from "../runtime/suggestions.js";
|
|
@@ -151,9 +151,23 @@ export async function analyzeMemgraph(input) {
|
|
|
151
151
|
// a workflow.
|
|
152
152
|
const topN = input.referenceTreeTopN ?? 20;
|
|
153
153
|
if (summary.totals.leakCount === 0 && topN > 0) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
// Capture a much larger pool than `topN` so that after filtering for
|
|
155
|
+
// the actionable view (`abandonedMemorySuspects`), we still have enough
|
|
156
|
+
// entries to surface the user-relevant classes that would otherwise
|
|
157
|
+
// be ranked below framework noise in the raw view. The notelet
|
|
158
|
+
// investigation showed AVPlayerItem at raw rank ~82 in a ~200-class
|
|
159
|
+
// heap; 10x of a 20-element default reliably surfaces classes ranked
|
|
160
|
+
// outside the raw top 20 after the noise filter trims the leaders.
|
|
161
|
+
const captureTopN = Math.max(topN, topN * 10, 200);
|
|
162
|
+
const rawTop = await captureReferenceTreeTop(path, captureTopN);
|
|
163
|
+
if (rawTop.length > 0) {
|
|
164
|
+
// Raw view: first `topN` entries unchanged from existing behavior.
|
|
165
|
+
summary.abandonedMemoryTop = rawTop.slice(0, topN);
|
|
166
|
+
// Filtered view: drop framework noise, keep ranking, then trim to topN.
|
|
167
|
+
const filtered = rawTop.filter((e) => !isFrameworkNoise(e.className));
|
|
168
|
+
if (filtered.length > 0) {
|
|
169
|
+
summary.abandonedMemorySuspects = filtered.slice(0, topN);
|
|
170
|
+
}
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
return summary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeMemgraph.js","sourceRoot":"","sources":["../../src/tools/analyzeMemgraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"analyzeMemgraph.js","sourceRoot":"","sources":["../../src/tools/analyzeMemgraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,14 @@ import type { DataStatus } from "../types.js";
|
|
|
3
3
|
export declare const analyzeTimeProfileSchema: z.ZodObject<{
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
6
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
6
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
8
|
tracePath: string;
|
|
9
9
|
topN: number;
|
|
10
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
10
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
11
11
|
}, {
|
|
12
12
|
tracePath: string;
|
|
13
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
13
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
14
14
|
topN?: number | undefined;
|
|
15
15
|
}>;
|
|
16
16
|
export type AnalyzeTimeProfileInput = z.infer<typeof analyzeTimeProfileSchema>;
|
|
@@ -37,20 +37,20 @@ export declare const cleanupTracesShape: {
|
|
|
37
37
|
readonly olderThanDays: z.ZodOptional<z.ZodNumber>;
|
|
38
38
|
readonly dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
39
39
|
readonly root: z.ZodOptional<z.ZodString>;
|
|
40
|
-
readonly outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
40
|
+
readonly outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
41
41
|
};
|
|
42
42
|
export declare const cleanupTracesSchema: z.ZodObject<{
|
|
43
43
|
readonly olderThanDays: z.ZodOptional<z.ZodNumber>;
|
|
44
44
|
readonly dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
45
45
|
readonly root: z.ZodOptional<z.ZodString>;
|
|
46
|
-
readonly outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
46
|
+
readonly outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
47
47
|
}, "strip", z.ZodTypeAny, {
|
|
48
48
|
dryRun: boolean;
|
|
49
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
49
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
50
50
|
olderThanDays?: number | undefined;
|
|
51
51
|
root?: string | undefined;
|
|
52
52
|
}, {
|
|
53
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
53
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
54
54
|
olderThanDays?: number | undefined;
|
|
55
55
|
dryRun?: boolean | undefined;
|
|
56
56
|
root?: string | undefined;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { type ReferenceTreeEntry } from "../parsers/referenceTree.js";
|
|
2
3
|
import type { LeaksReport } from "../types.js";
|
|
3
4
|
export declare const diffMemgraphsSchema: z.ZodObject<{
|
|
4
5
|
before: z.ZodString;
|
|
5
6
|
after: z.ZodString;
|
|
6
|
-
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both"]>>;
|
|
7
|
+
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
7
8
|
}, "strip", z.ZodTypeAny, {
|
|
8
9
|
after: string;
|
|
9
10
|
before: string;
|
|
10
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
11
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
11
12
|
}, {
|
|
12
13
|
after: string;
|
|
13
14
|
before: string;
|
|
14
|
-
outputFormat?: "markdown" | "json" | "both" | undefined;
|
|
15
|
+
outputFormat?: "markdown" | "json" | "both" | "verify-fix-table" | undefined;
|
|
15
16
|
}>;
|
|
16
17
|
export type DiffMemgraphsInput = z.infer<typeof diffMemgraphsSchema>;
|
|
17
18
|
export interface CycleSignature {
|
|
@@ -26,6 +27,15 @@ export interface CycleDiffEntry {
|
|
|
26
27
|
afterCount: number;
|
|
27
28
|
delta: number;
|
|
28
29
|
}
|
|
30
|
+
export interface ReferenceTreeDiffEntry {
|
|
31
|
+
className: string;
|
|
32
|
+
before: number;
|
|
33
|
+
after: number;
|
|
34
|
+
delta: number;
|
|
35
|
+
beforeBytes: number;
|
|
36
|
+
afterBytes: number;
|
|
37
|
+
bytesDelta: number;
|
|
38
|
+
}
|
|
29
39
|
export interface DiffMemgraphsResult {
|
|
30
40
|
ok: boolean;
|
|
31
41
|
before: {
|
|
@@ -39,16 +49,24 @@ export interface DiffMemgraphsResult {
|
|
|
39
49
|
totals: {
|
|
40
50
|
leakCountDelta: number;
|
|
41
51
|
bytesLeakedDelta: number;
|
|
52
|
+
/**
|
|
53
|
+
* Net instance-count delta from the reference-tree (heap-wide) view.
|
|
54
|
+
* Sum of all `referenceTreeChanges` deltas. Useful for "did the heap
|
|
55
|
+
* shrink overall?" without scrolling per-class. New in v1.11.
|
|
56
|
+
*/
|
|
57
|
+
referenceTreeInstanceDelta?: number;
|
|
58
|
+
/** Net bytes delta from the reference-tree view. New in v1.11. */
|
|
59
|
+
referenceTreeBytesDelta?: number;
|
|
42
60
|
};
|
|
43
61
|
classCounts: {
|
|
44
|
-
/** Classes whose count went up (potential new leaks). */
|
|
62
|
+
/** Classes whose count went up (potential new leaks). Cycle-based view. */
|
|
45
63
|
increased: Array<{
|
|
46
64
|
className: string;
|
|
47
65
|
before: number;
|
|
48
66
|
after: number;
|
|
49
67
|
delta: number;
|
|
50
68
|
}>;
|
|
51
|
-
/** Classes whose count went down (fixed leaks or just gone). */
|
|
69
|
+
/** Classes whose count went down (fixed leaks or just gone). Cycle-based view. */
|
|
52
70
|
decreased: Array<{
|
|
53
71
|
className: string;
|
|
54
72
|
before: number;
|
|
@@ -56,15 +74,50 @@ export interface DiffMemgraphsResult {
|
|
|
56
74
|
delta: number;
|
|
57
75
|
}>;
|
|
58
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Heap-wide class-count changes from the reference-tree pass. Populated
|
|
79
|
+
* even when `leakCount` is 0 in both snapshots (which is exactly when
|
|
80
|
+
* cycle-only `classCounts` returns empty and the user wants this view).
|
|
81
|
+
* Includes framework noise (NSMutableDictionary, CFString, etc.); see
|
|
82
|
+
* `actionableReferenceTreeChanges` for the filtered view. New in v1.11.
|
|
83
|
+
*/
|
|
84
|
+
referenceTreeChanges?: {
|
|
85
|
+
increased: ReferenceTreeDiffEntry[];
|
|
86
|
+
decreased: ReferenceTreeDiffEntry[];
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* `referenceTreeChanges` with framework noise filtered out via
|
|
90
|
+
* `isFrameworkNoise`. Surfaces AV / KVO / app-level classes for the
|
|
91
|
+
* verify-fix loop without scrolling past Foundation collection growth.
|
|
92
|
+
* New in v1.11.
|
|
93
|
+
*/
|
|
94
|
+
actionableReferenceTreeChanges?: {
|
|
95
|
+
increased: ReferenceTreeDiffEntry[];
|
|
96
|
+
decreased: ReferenceTreeDiffEntry[];
|
|
97
|
+
};
|
|
59
98
|
cycles: {
|
|
60
99
|
/** ROOT CYCLE signatures present only in `after`. */
|
|
61
100
|
newInAfter: CycleDiffEntry[];
|
|
62
101
|
/** Signatures present only in `before` (cycle disappeared). */
|
|
63
102
|
goneFromBefore: CycleDiffEntry[];
|
|
64
|
-
/** Signatures present in both
|
|
103
|
+
/** Signatures present in both; count change is what matters. */
|
|
65
104
|
persisted: CycleDiffEntry[];
|
|
66
105
|
};
|
|
67
106
|
}
|
|
68
107
|
/** Pure: compare two parsed reports and return a structured diff. */
|
|
69
108
|
export declare function diffReports(before: LeaksReport, after: LeaksReport, beforePath: string, afterPath: string): DiffMemgraphsResult;
|
|
109
|
+
/**
|
|
110
|
+
* Pure: diff two reference-tree entry lists by class name and return
|
|
111
|
+
* increased / decreased buckets. Each entry carries before/after counts,
|
|
112
|
+
* bytes, and delta values. Sorted: increased by delta desc, decreased by
|
|
113
|
+
* delta asc (most-negative first).
|
|
114
|
+
*
|
|
115
|
+
* Returns null when both inputs are empty. The async wrapper uses this
|
|
116
|
+
* absence to suppress the `referenceTreeChanges` field on the result so
|
|
117
|
+
* cycle-only callers see no change vs v1.10. New in v1.11.
|
|
118
|
+
*/
|
|
119
|
+
export declare function diffReferenceTrees(before: ReferenceTreeEntry[], after: ReferenceTreeEntry[]): {
|
|
120
|
+
increased: ReferenceTreeDiffEntry[];
|
|
121
|
+
decreased: ReferenceTreeDiffEntry[];
|
|
122
|
+
} | null;
|
|
70
123
|
export declare function diffMemgraphs(input: DiffMemgraphsInput): Promise<DiffMemgraphsResult>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { runCommand } from "../runtime/exec.js";
|
|
2
3
|
import { runLeaksAndParse } from "../runtime/leaks.js";
|
|
3
4
|
import { rootCyclesOnly } from "../parsers/leaksOutput.js";
|
|
5
|
+
import { parseReferenceTreeText, isFrameworkNoise, } from "../parsers/referenceTree.js";
|
|
4
6
|
import { countByClass } from "./countAlive.js";
|
|
5
7
|
import { outputFormatField } from "../runtime/responseFormatter.js";
|
|
6
8
|
export const diffMemgraphsSchema = z.object({
|
|
@@ -104,11 +106,106 @@ export function diffReports(before, after, beforePath, afterPath) {
|
|
|
104
106
|
cycles: { newInAfter, goneFromBefore, persisted },
|
|
105
107
|
};
|
|
106
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Pure: diff two reference-tree entry lists by class name and return
|
|
111
|
+
* increased / decreased buckets. Each entry carries before/after counts,
|
|
112
|
+
* bytes, and delta values. Sorted: increased by delta desc, decreased by
|
|
113
|
+
* delta asc (most-negative first).
|
|
114
|
+
*
|
|
115
|
+
* Returns null when both inputs are empty. The async wrapper uses this
|
|
116
|
+
* absence to suppress the `referenceTreeChanges` field on the result so
|
|
117
|
+
* cycle-only callers see no change vs v1.10. New in v1.11.
|
|
118
|
+
*/
|
|
119
|
+
export function diffReferenceTrees(before, after) {
|
|
120
|
+
if (before.length === 0 && after.length === 0)
|
|
121
|
+
return null;
|
|
122
|
+
const beforeByClass = new Map(before.map((e) => [e.className, e]));
|
|
123
|
+
const afterByClass = new Map(after.map((e) => [e.className, e]));
|
|
124
|
+
const allClasses = new Set([
|
|
125
|
+
...beforeByClass.keys(),
|
|
126
|
+
...afterByClass.keys(),
|
|
127
|
+
]);
|
|
128
|
+
const increased = [];
|
|
129
|
+
const decreased = [];
|
|
130
|
+
for (const cls of allClasses) {
|
|
131
|
+
const b = beforeByClass.get(cls);
|
|
132
|
+
const a = afterByClass.get(cls);
|
|
133
|
+
const beforeCount = b?.instanceCount ?? 0;
|
|
134
|
+
const afterCount = a?.instanceCount ?? 0;
|
|
135
|
+
const delta = afterCount - beforeCount;
|
|
136
|
+
if (delta === 0)
|
|
137
|
+
continue;
|
|
138
|
+
const beforeBytes = b?.totalBytes ?? 0;
|
|
139
|
+
const afterBytes = a?.totalBytes ?? 0;
|
|
140
|
+
const entry = {
|
|
141
|
+
className: cls,
|
|
142
|
+
before: beforeCount,
|
|
143
|
+
after: afterCount,
|
|
144
|
+
delta,
|
|
145
|
+
beforeBytes,
|
|
146
|
+
afterBytes,
|
|
147
|
+
bytesDelta: afterBytes - beforeBytes,
|
|
148
|
+
};
|
|
149
|
+
if (delta > 0)
|
|
150
|
+
increased.push(entry);
|
|
151
|
+
else
|
|
152
|
+
decreased.push(entry);
|
|
153
|
+
}
|
|
154
|
+
increased.sort((x, y) => y.delta - x.delta || y.bytesDelta - x.bytesDelta);
|
|
155
|
+
decreased.sort((x, y) => x.delta - y.delta || x.bytesDelta - y.bytesDelta);
|
|
156
|
+
return { increased, decreased };
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Wide capture pool for the reference-tree pass. Mirrors analyzeMemgraph's
|
|
160
|
+
* 10x heuristic from v1.10: the actionable view filters out framework
|
|
161
|
+
* noise (NSMutableDictionary, CFString, libMainThreadChecker bss, etc.)
|
|
162
|
+
* so we need enough headroom for app-level classes ranked below the
|
|
163
|
+
* noise leaders to survive into the post-filter top.
|
|
164
|
+
*/
|
|
165
|
+
const REFERENCE_TREE_DIFF_TOPN = 1000;
|
|
166
|
+
/** Spawn `leaks --referenceTree --groupByType --noContent` against a
|
|
167
|
+
* `.memgraph` and return parsed entries. Failure is non-fatal: returns
|
|
168
|
+
* an empty array so the cycle-side diff still completes. */
|
|
169
|
+
async function captureReferenceTree(path) {
|
|
170
|
+
const result = await runCommand("leaks", ["--referenceTree", "--groupByType", "--noContent", path], { timeoutMs: 5 * 60_000 });
|
|
171
|
+
if (result.code !== 0 && result.code !== 1) {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
return parseReferenceTreeText(result.stdout, REFERENCE_TREE_DIFF_TOPN);
|
|
175
|
+
}
|
|
107
176
|
export async function diffMemgraphs(input) {
|
|
108
|
-
const [{ report: before, resolvedPath: bp }, { report: after, resolvedPath: ap }] = await Promise.all([
|
|
177
|
+
const [{ report: before, resolvedPath: bp }, { report: after, resolvedPath: ap }, beforeRefTree, afterRefTree,] = await Promise.all([
|
|
109
178
|
runLeaksAndParse(input.before),
|
|
110
179
|
runLeaksAndParse(input.after),
|
|
180
|
+
captureReferenceTree(input.before),
|
|
181
|
+
captureReferenceTree(input.after),
|
|
111
182
|
]);
|
|
112
|
-
|
|
183
|
+
const result = diffReports(before, after, bp, ap);
|
|
184
|
+
const referenceTreeChanges = diffReferenceTrees(beforeRefTree, afterRefTree);
|
|
185
|
+
if (referenceTreeChanges) {
|
|
186
|
+
result.referenceTreeChanges = referenceTreeChanges;
|
|
187
|
+
// Actionable view: same diff with framework noise filtered out. Same
|
|
188
|
+
// ordering preserved (no re-rank). Provides the verify-fix view for
|
|
189
|
+
// the notelet-shape case where AVPlayerItem 342 to 0 needs to surface
|
|
190
|
+
// above NSMutableDictionary 12k to 11k noise.
|
|
191
|
+
result.actionableReferenceTreeChanges = {
|
|
192
|
+
increased: referenceTreeChanges.increased.filter((e) => !isFrameworkNoise(e.className)),
|
|
193
|
+
decreased: referenceTreeChanges.decreased.filter((e) => !isFrameworkNoise(e.className)),
|
|
194
|
+
};
|
|
195
|
+
// Heap-wide totals so callers can branch on a single number.
|
|
196
|
+
let instanceDelta = 0;
|
|
197
|
+
let bytesDelta = 0;
|
|
198
|
+
for (const e of referenceTreeChanges.increased) {
|
|
199
|
+
instanceDelta += e.delta;
|
|
200
|
+
bytesDelta += e.bytesDelta;
|
|
201
|
+
}
|
|
202
|
+
for (const e of referenceTreeChanges.decreased) {
|
|
203
|
+
instanceDelta += e.delta;
|
|
204
|
+
bytesDelta += e.bytesDelta;
|
|
205
|
+
}
|
|
206
|
+
result.totals.referenceTreeInstanceDelta = instanceDelta;
|
|
207
|
+
result.totals.referenceTreeBytesDelta = bytesDelta;
|
|
208
|
+
}
|
|
209
|
+
return result;
|
|
113
210
|
}
|
|
114
211
|
//# sourceMappingURL=diffMemgraphs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffMemgraphs.js","sourceRoot":"","sources":["../../src/tools/diffMemgraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,mDAAmD,CAAC;IAChE,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"diffMemgraphs.js","sourceRoot":"","sources":["../../src/tools/diffMemgraphs.ts"],"names":[],"mappings":"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"}
|