Skip to main content

Interface: IHeapLocation

Defined in: core/src/lib/Types.ts:1577

An IHeapLocation instance contains a source location information associated with a JS heap object. A heap snapshot is generally a graph where graph nodes are JS heap objects and graph edges are JS references among JS heap objects.

it is not recommended to modify any IHeapLocation instance

  • Examples: V8 or hermes heap snapshot can be parsed by the 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;
// ...
}
});
})();

Properties​

column​

column: number

Defined in: core/src/lib/Types.ts:1597

get the column number


line​

line: number

Defined in: core/src/lib/Types.ts:1593

get the line number


node​

node: Nullable\<IHeapNode>

Defined in: core/src/lib/Types.ts:1585

get the heap object this location this location represents


script_id​

script_id: number

Defined in: core/src/lib/Types.ts:1589

get the script ID of the source file


snapshot​

snapshot: IHeapSnapshot

Defined in: core/src/lib/Types.ts:1581

get the IHeapSnapshot containing this location instance

Methods​

getJSONifyableObject()​

getJSONifyableObject(): AnyRecord

Defined in: core/src/lib/Types.ts:1605

convert to a concise readable object that can be used for serialization (like calling JSON.stringify(node, ...args)).

This API does not contain all the information captured by the hosting object.

Returns​

AnyRecord


toJSONString()​

toJSONString(...args): string

Defined in: core/src/lib/Types.ts:1618

convert to a concise readable string output (like calling JSON.stringify(node, ...args)).

Note: Please be aware that using JSON.stringify(node, ...args) is not recommended as it will generate a JSON representation of the host object that is too large to be easily readable due to its connections to other parts of the data structures within the heap snapshot.

This API does not completely serialize all the information captured by the hosting object.

Parameters​

args​

...any[]

Returns​

string