跳至主要内容

接口:IHeapNodes

一个伪数组,包含所有堆图节点(堆中的 JS 对象)。一个 JS 堆可能包含数百万个对象,因此 memlab 使用伪数组作为所有堆节点的集合。伪数组提供 API 来查询和遍历所有堆对象。

readonly 不建议修改此伪数组

  • 示例:
import type {IHeapSnapshot, IHeapNodes} from '@memlab/core';
import {dumpNodeHeapSnapshot} from '@memlab/core';
import {getFullHeapFromFile} from '@memlab/heap-analysis';

(async function () {
const heapFile = dumpNodeHeapSnapshot();
const heap: IHeapSnapshot = await getFullHeapFromFile(heapFile);

const nodes: IHeapNodes = heap.nodes;
nodes.length;
nodes.get(0);
nodes.forEach((node, i) => {
if (stopIteration) {
return false;
}
});
})();

属性

length: number

堆图中的节点总数(或堆快照中的 JS 对象)。

方法

forEach(callback)

迭代所有数组元素,并将回调应用于每个元素,元素索引按升序排列。

  • 参数:
    • callback: (node: IHeapNode, index: number) => boolean| void | 回调不需要返回任何值,如果在索引 i 处迭代元素时回调返回 false,则不会迭代 i 之后的所有元素。
  • 返回值: void
  • 源文件:

get(index)

获取指定索引处的 IHeapNode 元素

  • 参数:

    • index: number | 伪数组中元素的索引,索引范围从 0 到数组长度 - 1。请注意,这不是堆节点 ID。
  • 返回值: Nullable<IHeapNode>| 当 0 <= index < array.length 时,此 API 返回指定索引处的元素,否则返回 null

  • 源文件: