接口:IHeapLocation
IHeapLocation
实例包含与 JS 堆对象关联的源位置信息。堆快照通常是一个图,其中图节点是 JS 堆对象,图边是 JS 堆对象之间的 JS 引用。
readonly
不建议修改任何 IHeapLocation
实例
- 示例:V8 或 hermes 堆快照可以由 getFullHeapFromFile API 解析。
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 不包含宿主对象捕获的所有信息。
- Returns:
AnyRecord
- 来源:
toJSONString(...args
)
转换为简洁可读的字符串输出(例如调用 JSON.stringify(node, ...args)
)。
注意:请注意,不建议使用 JSON.stringify(node, ...args)
,因为它会生成宿主对象的 JSON 表示,该表示太大而难以轻松读取,因为它与其他部分建立了连接堆快照中的数据结构。
此 API 不会完全序列化宿主对象捕获的所有信息。
- 参数:
...args
:any
[]
- Returns:
string
- 来源: