跳到主要内容

接口:IHeapLocation

IHeapLocation 实例包含与 JS 堆对象关联的源位置信息。堆快照通常是一个图,其中图节点是 JS 堆对象,图边是 JS 堆对象之间的 JS 引用。

readonly 不建议修改任何 IHeapLocation 实例

import type {IHeapSnapshot, IHeapNode, IHeapLocation} 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);

// iterate over each node (heap object)
heap.nodes.forEach((node: IHeapNode, i: number) => {
const location: Nullable<IHeapLocation> = node.location;
if (location) {
// use the location API here
location.line;
// ...
}
});
})();

属性

column: number

获取列号


line: number

获取行号


node: Nullable<IHeapNode>

获取此位置表示的堆对象


script_id: number

获取源文件的脚本 ID


snapshot: IHeapSnapshot

获取包含此位置实例的 IHeapSnapshot

方法

getJSONifyableObject()

转换为可用于序列化的简洁可读对象(例如调用 JSON.stringify(node, ...args))。

此 API 不包含宿主对象捕获的所有信息。


toJSONString(...args)

转换为简洁可读的字符串输出(例如调用 JSON.stringify(node, ...args))。

注意:请注意,不建议使用 JSON.stringify(node, ...args),因为它会生成宿主对象的 JSON 表示,该表示太大而难以轻松读取,因为它与其他部分建立了连接堆快照中的数据结构。

此 API 不会完全序列化宿主对象捕获的所有信息。

  • 属性
    • column: number
    • line: number
    • node: Nullable<IHeapNode>
    • script_id: number
    • snapshot: IHeapSnapshot
  • 方法
    • getJSONifyableObject()
    • toJSONString(...args)