@memlab/heap-analysis 2.0.1 → 2.0.3
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/dist/PluginUtils.d.ts +5 -5
- package/dist/PluginUtils.d.ts.map +1 -1
- package/dist/PluginUtils.js +2 -2
- package/dist/__tests__/package.test.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/plugins/CollectionUnboundGrowthAnalysis.d.ts.map +1 -1
- package/dist/plugins/CollectionUnboundGrowthAnalysis.js +1 -1
- package/dist/plugins/ObjectShapeAnalysis.d.ts.map +1 -1
- package/dist/plugins/ObjectShapeAnalysis.js +1 -1
- package/dist/plugins/ObjectUnboundGrowthAnalysis.d.ts.map +1 -1
- package/dist/plugins/ObjectUnboundGrowthAnalysis.js +1 -1
- package/dist/plugins/ReactComponentHookAnalysis.js +3 -3
- package/dist/plugins/ShapeUnboundGrowthAnalysis.d.ts.map +1 -1
- package/dist/plugins/ShapeUnboundGrowthAnalysis.js +2 -2
- package/package.json +3 -3
package/dist/PluginUtils.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @oncall memory_lab
|
|
9
9
|
*/
|
|
10
10
|
import type { ParsedArgs } from 'minimist';
|
|
11
|
-
import { IHeapSnapshot, IHeapNode, AnyOptions, IHeapEdge, Nullable, MemLabConfig } from '@memlab/core';
|
|
11
|
+
import { IHeapSnapshot, IHeapNode, HeapNodeIdSet, AnyOptions, IHeapEdge, Nullable, MemLabConfig } from '@memlab/core';
|
|
12
12
|
declare function isNodeWorthInspecting(node: IHeapNode): boolean;
|
|
13
13
|
/**
|
|
14
14
|
* This is the auto-generated arguments passed to all the `process` method
|
|
@@ -295,7 +295,7 @@ declare function snapshotMapReduce<T1, T2>(mapCallback: (snapshot: IHeapSnapshot
|
|
|
295
295
|
* @param nodeMetricsCb callback to calculate metrics from each dominator node
|
|
296
296
|
* @returns the aggregated metrics
|
|
297
297
|
*/
|
|
298
|
-
declare function aggregateDominatorMetrics(ids:
|
|
298
|
+
declare function aggregateDominatorMetrics(ids: HeapNodeIdSet, snapshot: IHeapSnapshot, checkNodeCb: (node: IHeapNode) => boolean, nodeMetricsCb: (node: IHeapNode) => number): number;
|
|
299
299
|
/**
|
|
300
300
|
* This API calculate the set of
|
|
301
301
|
* [dominator nodes](https://firefox-source-docs.mozilla.org/devtools-user/memory/dominators/index.html)
|
|
@@ -305,7 +305,7 @@ declare function aggregateDominatorMetrics(ids: Set<number>, snapshot: IHeapSnap
|
|
|
305
305
|
* @returns the set of dominator nodes/objects
|
|
306
306
|
* * * **Examples**:
|
|
307
307
|
* ```typescript
|
|
308
|
-
* import {dumpNodeHeapSnapshot} from '@memlab/core';
|
|
308
|
+
* import {dumpNodeHeapSnapshot, NumericSet} from '@memlab/core';
|
|
309
309
|
* import {getFullHeapFromFile, getDominatorNodes} from '@memlab/heap-analysis';
|
|
310
310
|
*
|
|
311
311
|
* class TestObject {}
|
|
@@ -328,13 +328,13 @@ declare function aggregateDominatorMetrics(ids: Set<number>, snapshot: IHeapSnap
|
|
|
328
328
|
*
|
|
329
329
|
* // get the dominator nodes
|
|
330
330
|
* const dominatorIds = getDominatorNodes(
|
|
331
|
-
* new
|
|
331
|
+
* new NumericSet(nodes.map(node => node.id)),
|
|
332
332
|
* heap,
|
|
333
333
|
* );
|
|
334
334
|
* })();
|
|
335
335
|
* ```
|
|
336
336
|
*/
|
|
337
|
-
declare function getDominatorNodes(ids:
|
|
337
|
+
declare function getDominatorNodes(ids: HeapNodeIdSet, snapshot: IHeapSnapshot): HeapNodeIdSet;
|
|
338
338
|
declare function filterOutLargestObjects(snapshot: IHeapSnapshot, objectFilter: (node: IHeapNode) => boolean, listSize?: number): IHeapNode[];
|
|
339
339
|
declare function calculateRetainedSizes(snapshot: IHeapSnapshot): void;
|
|
340
340
|
declare function isCollectObject(node: IHeapNode): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginUtils.d.ts","sourceRoot":"","sources":["../src/PluginUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EAER,YAAY,EAKb,MAAM,cAAc,CAAC;AAuBtB,iBAAS,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAYvD;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAuFF,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAIF,iBAAS,uBAAuB,CAC9B,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,GAAE,UAAU,GAAG,eAAoB,GACzC,IAAI,CAwBN;AAED,iBAAS,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAIlD;AA6ED,iBAAS,yBAAyB,CAChC,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,GAAE,UAAU,GAAG,eAAoB,GACzC,IAAI,CAoBN;AASD,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,GAAE,UAAU,GAAG,eAAoB,GACzC,IAAI,CAoBN;AASD,iBAAS,0BAA0B,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAS3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAMxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,mBAAmB,GAC3B,QAAQ,CAAC,MAAM,CAAC,CASlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAe,gBAAgB,CAC7B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAe,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAKxD;AAED,kBAAkB;AAClB,iBAAe,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEnE;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,iBAAe,iBAAiB,CAAC,EAAE,EAAE,EAAE,EACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,EAAE,EACrE,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EACrC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,EAAE,CAAC,CAqBb;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,yBAAyB,CAChC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginUtils.d.ts","sourceRoot":"","sources":["../src/PluginUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/PluginUtils.js
CHANGED
|
@@ -609,7 +609,7 @@ function aggregateDominatorMetrics(ids, snapshot, checkNodeCb, nodeMetricsCb) {
|
|
|
609
609
|
* @returns the set of dominator nodes/objects
|
|
610
610
|
* * * **Examples**:
|
|
611
611
|
* ```typescript
|
|
612
|
-
* import {dumpNodeHeapSnapshot} from '@memlab/core';
|
|
612
|
+
* import {dumpNodeHeapSnapshot, NumericSet} from '@memlab/core';
|
|
613
613
|
* import {getFullHeapFromFile, getDominatorNodes} from '@memlab/heap-analysis';
|
|
614
614
|
*
|
|
615
615
|
* class TestObject {}
|
|
@@ -632,7 +632,7 @@ function aggregateDominatorMetrics(ids, snapshot, checkNodeCb, nodeMetricsCb) {
|
|
|
632
632
|
*
|
|
633
633
|
* // get the dominator nodes
|
|
634
634
|
* const dominatorIds = getDominatorNodes(
|
|
635
|
-
* new
|
|
635
|
+
* new NumericSet(nodes.map(node => node.id)),
|
|
636
636
|
* heap,
|
|
637
637
|
* );
|
|
638
638
|
* })();
|
|
@@ -81,6 +81,6 @@ test('getDominatorNodes works as expected', () => __awaiter(void 0, void 0, void
|
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
83
|
// get the dominator nodes
|
|
84
|
-
const dominatorIds = (0, index_1.getDominatorNodes)(new
|
|
84
|
+
const dominatorIds = (0, index_1.getDominatorNodes)(new core_1.NumericSet(nodes.map(node => node.id)), heap);
|
|
85
85
|
expect(dominatorIds.size).toBeGreaterThan(0);
|
|
86
86
|
}), timeout);
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** @internal */
|
|
11
11
|
export declare function registerPackage(): Promise<void>;
|
|
12
|
-
export declare const getDominatorNodes: (ids:
|
|
12
|
+
export declare const getDominatorNodes: (ids: import("@memlab/core").HeapNodeIdSet, snapshot: import("@memlab/core").IHeapSnapshot) => import("@memlab/core").HeapNodeIdSet,
|
|
13
13
|
/** @deprecated */
|
|
14
14
|
getHeapFromFile: (file: string) => Promise<import("@memlab/core").IHeapSnapshot>, getFullHeapFromFile: (file: string) => Promise<import("@memlab/core").IHeapSnapshot>, getSnapshotDirForAnalysis: (options: import("./PluginUtils").HeapAnalysisOptions) => import("@memlab/core").Nullable<string>, getSnapshotFileForAnalysis: (options: import("./PluginUtils").HeapAnalysisOptions) => string, loadHeapSnapshot: (options: import("./PluginUtils").HeapAnalysisOptions) => Promise<import("@memlab/core").IHeapSnapshot>, snapshotMapReduce: <T1, T2>(mapCallback: (snapshot: import("@memlab/core").IHeapSnapshot, i: number, file: string) => T1, reduceCallback: (results: T1[]) => T2, options: import("./PluginUtils").HeapAnalysisOptions) => Promise<T2>, takeNodeFullHeap: () => Promise<import("@memlab/core").IHeapSnapshot>;
|
|
15
15
|
export type { AnalyzeSnapshotResult, HeapAnalysisOptions, RunHeapAnalysisOptions, } from './PluginUtils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/CollectionUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CollectionUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/CollectionUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,cAAc,CAAC;AAWtB,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAK3C,cAAM,+BAAgC,SAAQ,YAAY;IACxD,cAAc,IAAI,MAAM;IAIxB,gBAAgB;IAChB,cAAc,IAAI,MAAM;IAOxB,gBAAgB;IAChB,UAAU,IAAI,UAAU,EAAE;IAI1B,gBAAgB;IACH,uBAAuB,CAClC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAQjC,gBAAgB;IACV,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;YAS5C,sBAAsB;CAuHrC;AAED,eAAe,+BAA+B,CAAC"}
|
|
@@ -127,7 +127,7 @@ class CollectionUnboundGrowthAnalysis extends BaseAnalysis_1.default {
|
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
129
|
// post process and print the unbounded objects
|
|
130
|
-
const idsInLastSnapshot = new
|
|
130
|
+
const idsInLastSnapshot = new core_1.NumericSet();
|
|
131
131
|
snapshot === null || snapshot === void 0 ? void 0 : snapshot.nodes.forEach(node => {
|
|
132
132
|
idsInLastSnapshot.add(node.id);
|
|
133
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectShapeAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ObjectShapeAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectShapeAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ObjectShapeAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,cAAc,CAAC;AAWtB,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAI3C,cAAM,mBAAoB,SAAQ,YAAY;IAC5C,cAAc,IAAI,MAAM;IAIxB,gBAAgB;IAChB,cAAc,IAAI,MAAM;IAIxB,gBAAgB;IAChB,UAAU,IAAI,UAAU,EAAE;IAI1B,gBAAgB;IACH,2BAA2B,CACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;IAQjC,gBAAgB;IACV,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,gBAAgB;IACV,uBAAuB,CAAC,OAAO,GAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAM;IAe3D,gBAAgB;IAChB,OAAO,CAAC,yBAAyB;IAoEjC,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAmD5B,gBAAgB;IAChB,OAAO,CAAC,yBAAyB;CAUlC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -81,7 +81,7 @@ class ObjectShapeAnalysis extends BaseAnalysis_1.default {
|
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
const key = core_1.serializer.summarizeNodeShape(node);
|
|
84
|
-
breakdown[key] = breakdown[key] || new
|
|
84
|
+
breakdown[key] = breakdown[key] || new core_1.NumericSet();
|
|
85
85
|
breakdown[key].add(node.id);
|
|
86
86
|
if (population[key] === void 0) {
|
|
87
87
|
population[key] = { examples: [], n: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ObjectUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ObjectUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAY/E,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAI3C,cAAM,2BAA4B,SAAQ,YAAY;IACpD,cAAc,IAAI,MAAM;IAIxB,gBAAgB;IAChB,cAAc,IAAI,MAAM;IAOxB,gBAAgB;IAChB,UAAU,IAAI,UAAU,EAAE;IAI1B,gBAAgB;IACH,uBAAuB,CAClC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAQjC,gBAAgB;IACV,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;YAO5C,YAAY;YAOZ,mBAAmB;IA6IjC,OAAO,CAAC,sBAAsB;CAK/B;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -151,7 +151,7 @@ class ObjectUnboundGrowthAnalysis extends BaseAnalysis_1.default {
|
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
// post process and print the unbounded objects
|
|
154
|
-
const idsInLastSnapshot = new
|
|
154
|
+
const idsInLastSnapshot = new core_1.NumericSet();
|
|
155
155
|
snapshot === null || snapshot === void 0 ? void 0 : snapshot.nodes.forEach(node => {
|
|
156
156
|
idsInLastSnapshot.add(node.id);
|
|
157
157
|
});
|
|
@@ -254,9 +254,9 @@ class ReactComponentHookAnalysis extends BaseAnalysis_1.default {
|
|
|
254
254
|
});
|
|
255
255
|
// aggregate and calculate the retained sizes
|
|
256
256
|
for (const [, record] of componentMemMap) {
|
|
257
|
-
record.totalRetainedSize = core_1.utils.aggregateDominatorMetrics(new
|
|
258
|
-
record.totalMemoizedStateRetainedSize = core_1.utils.aggregateDominatorMetrics(new
|
|
259
|
-
record.totalMemoizedPropsRetainedSize = core_1.utils.aggregateDominatorMetrics(new
|
|
257
|
+
record.totalRetainedSize = core_1.utils.aggregateDominatorMetrics(new core_1.NumericSet(record.fiberNodeIds), snapshot, () => true, core_1.utils.getRetainedSize);
|
|
258
|
+
record.totalMemoizedStateRetainedSize = core_1.utils.aggregateDominatorMetrics(new core_1.NumericSet(record.memoizedStateIds), snapshot, () => true, core_1.utils.getRetainedSize);
|
|
259
|
+
record.totalMemoizedPropsRetainedSize = core_1.utils.aggregateDominatorMetrics(new core_1.NumericSet(record.memoizedPropsIds), snapshot, () => true, core_1.utils.getRetainedSize);
|
|
260
260
|
}
|
|
261
261
|
return componentMemMap;
|
|
262
262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShapeUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ShapeUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAG/E,OAAO,
|
|
1
|
+
{"version":3,"file":"ShapeUnboundGrowthAnalysis.d.ts","sourceRoot":"","sources":["../../src/plugins/ShapeUnboundGrowthAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EACL,UAAU,EAMX,MAAM,cAAc,CAAC;AAEtB,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAe3C,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,YAAY;IAClE,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,uBAAuB,CAAsB;IAE9C,cAAc,IAAI,MAAM;IAI/B,gBAAgB;IACT,cAAc,IAAI,MAAM;IAO/B,gBAAgB;IAChB,UAAU,IAAI,UAAU,EAAE;IAI1B,gBAAgB;IACH,uBAAuB,CAClC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAQ1B,0BAA0B,IAAI,YAAY,EAAE;IAInD,gBAAgB;IACH,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjE,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAoDrB,OAAO,CAAC,UAAU;IAyDlB,OAAO,CAAC,KAAK;CAmBd"}
|
|
@@ -91,7 +91,7 @@ class ShapeUnboundGrowthAnalysis extends BaseAnalysis_1.default {
|
|
|
91
91
|
shape: key,
|
|
92
92
|
n: 0,
|
|
93
93
|
examples: [],
|
|
94
|
-
ids: new
|
|
94
|
+
ids: new core_1.NumericSet(),
|
|
95
95
|
};
|
|
96
96
|
const record = population[key];
|
|
97
97
|
++record.n;
|
|
@@ -105,7 +105,7 @@ class ShapeUnboundGrowthAnalysis extends BaseAnalysis_1.default {
|
|
|
105
105
|
if (shapes) {
|
|
106
106
|
for (const record of Object.values(population)) {
|
|
107
107
|
record.size = PluginUtils_1.default.aggregateDominatorMetrics(record.ids, snapshot, () => true, node => node.retainedSize);
|
|
108
|
-
record.ids = new
|
|
108
|
+
record.ids = new core_1.NumericSet();
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
return population;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memlab/heap-analysis",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "heap analysis plugins for memlab",
|
|
6
6
|
"author": "Liang Gong <lgong@meta.com>",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"LICENSE"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@memlab/core": "^2.0.
|
|
24
|
-
"@memlab/e2e": "^2.0.
|
|
23
|
+
"@memlab/core": "^2.0.3",
|
|
24
|
+
"@memlab/e2e": "^2.0.3",
|
|
25
25
|
"ansi": "^0.3.1",
|
|
26
26
|
"babar": "^0.2.0",
|
|
27
27
|
"chalk": "^4.0.0",
|