@memlab/heap-analysis 2.0.0 → 2.0.2

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.
@@ -129,6 +129,8 @@ declare class BaseAnalysis extends Analysis {
129
129
  * @returns an array of command line options
130
130
  */
131
131
  getOptions(): BaseOption[];
132
+ /** @internal */
133
+ isInternal(): boolean;
132
134
  }
133
135
  export default BaseAnalysis;
134
136
  //# sourceMappingURL=BaseAnalysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAnalysis.d.ts","sourceRoot":"","sources":["../src/BaseAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAyBvB,uBAAe,QAAQ;IAER,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE;;;;;;;;;;OAUG;IACU,GAAG,CACd,OAAO,GAAE,mBAAqD,GAC7D,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,uBAAuB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAmBjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,2BAA2B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAkBlC;AAED;;GAEG;AACH,cAAM,YAAa,SAAQ,QAAQ;IACjC;;;;;;;;;;;;;OAaG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;;;;OASG;IACU,OAAO,CAElB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC;IAKpB;;;OAGG;IACH,UAAU,IAAI,UAAU,EAAE;CAG3B;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"BaseAnalysis.d.ts","sourceRoot":"","sources":["../src/BaseAnalysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAyBvB,uBAAe,QAAQ;IAER,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE;;;;;;;;;;OAUG;IACU,GAAG,CACd,OAAO,GAAE,mBAAqD,GAC7D,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,uBAAuB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAmBjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,2BAA2B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAkBlC;AAED;;GAEG;AACH,cAAM,YAAa,SAAQ,QAAQ;IACjC;;;;;;;;;;;;;OAaG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;;;;OASG;IACU,OAAO,CAElB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC;IAKpB;;;OAGG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B,gBAAgB;IAChB,UAAU,IAAI,OAAO;CAGtB;AAED,eAAe,YAAY,CAAC"}
@@ -222,5 +222,9 @@ class BaseAnalysis extends Analysis {
222
222
  getOptions() {
223
223
  return [];
224
224
  }
225
+ /** @internal */
226
+ isInternal() {
227
+ return false;
228
+ }
225
229
  }
226
230
  exports.default = BaseAnalysis;
@@ -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: Set<number>, snapshot: IHeapSnapshot, checkNodeCb: (node: IHeapNode) => boolean, nodeMetricsCb: (node: IHeapNode) => number): number;
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 Set(nodes.map(node => node.id)),
331
+ * new NumericSet(nodes.map(node => node.id)),
332
332
  * heap,
333
333
  * );
334
334
  * })();
335
335
  * ```
336
336
  */
337
- declare function getDominatorNodes(ids: Set<number>, snapshot: IHeapSnapshot): Set<number>;
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":"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"}
1
+ {"version":3,"file":"PluginUtils.d.ts","sourceRoot":"","sources":["../src/PluginUtils.ts"],"names":[],"mappings":"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"}
@@ -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 Set(nodes.map(node => node.id)),
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 Set(nodes.map(node => node.id)), heap);
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: Set<number>, snapshot: import("@memlab/core").IHeapSnapshot) => Set<number>,
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;AAItB,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"}
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 Set();
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;AAItB,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"}
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 Set();
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;AAW/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"}
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 Set();
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 Set(record.fiberNodeIds), snapshot, () => true, core_1.utils.getRetainedSize);
258
- record.totalMemoizedStateRetainedSize = core_1.utils.aggregateDominatorMetrics(new Set(record.memoizedStateIds), snapshot, () => true, core_1.utils.getRetainedSize);
259
- record.totalMemoizedPropsRetainedSize = core_1.utils.aggregateDominatorMetrics(new Set(record.memoizedPropsIds), snapshot, () => true, core_1.utils.getRetainedSize);
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,EAAC,UAAU,EAAkC,MAAM,cAAc,CAAC;AAEzE,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"}
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 Set(),
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 Set();
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.0",
3
+ "version": "2.0.2",
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.0",
24
- "@memlab/e2e": "^2.0.0",
23
+ "@memlab/core": "^2.0.2",
24
+ "@memlab/e2e": "^2.0.2",
25
25
  "ansi": "^0.3.1",
26
26
  "babar": "^0.2.0",
27
27
  "chalk": "^4.0.0",