Class: SnapshotResultReader
A utility entity to read all MemLab files generated from baseline, target and final heap snapshots.
The most useful feature of this class is when you have
three separate snapshots (baseline, target, and final)
that are not taken from MemLab, but you still would
like to use the findLeaks
to detect memory leaks:
const {SnapshotResultReader, findLeaks} = require('@memlab/api');
// baseline, target, and final are file paths of heap snapshot files
const reader = SnapshotResultReader.fromSnapshots(baseline, target, final);
const leaks = await findLeaks(reader);
Hierarchy
default
↳
SnapshotResultReader
Methods
getConsoleBackupFile()
This method gets the backup file of the console output.
The memlab CLI commands (e.g., memlab find-leaks
) outputs a
non-structured string representation for easy reading, while the
APIs (e.g., findLeaks
) return structured leaks
representation that is handy for post-processing. If you need to
obtain all the string output from the CLI in the current working directory,
you can read them from the CLI output backup file returned by this method.
- Returns:
string
| the absolute path of the backup file - Examples:
const {takeSnapshots, findLeaks} = require('@memlab/api');
(async function () {
const scenario = { url: () => 'https://www.npmjs.com'};
const result = await takeSnapshots({scenario});
const leaks = await findLeaks(result);
// get the console output backup file
const consoleBackupFile = result.getConsoleBackupFile();
})();
getInteractionSteps()
browser interaction step sequence
Returns:
E2EStepInfo
[] | an array of browser interaction step informationExamples:
const {SnapshotResultReader} = require('@memlab/api');
// baseline, target, and final are file paths of heap snapshot files
const reader = SnapshotResultReader.fromSnapshots(baseline, target, final);
const paths = reader.getInteractionSteps();
getRootDirectory()
get the directory where the data and generated files of the memlab run were stored
- Returns:
string
| absolute path of the directory - Examples:
const {takeSnapshots} = require('@memlab/api');
(async function () {
const scenario = { url: () => 'https://www.npmjs.com'};
const result = await takeSnapshots({scenario});
// get the directory that stores all the files
// generated from the takeSnapshots call
const dataDir = result.getRootDirectory();
})();
getSnapshotFiles()
get all snapshot files related to this SnapshotResultReader
Returns:
string
[] | an array of snapshot file's absolute pathExamples:
const {SnapshotResultReader} = require('@memlab/api');
// baseline, target, and final are file paths of heap snapshot files
const reader = SnapshotResultReader.fromSnapshots(baseline, target, final);
const paths = reader.getSnapshotFiles();
Static
fromSnapshots(baselineSnapshot
, targetSnapshot
, finalSnapshot
)
Build a result reader from baseline, target, and final heap snapshot files. The three snapshot files do not have to be in the same directory.
Parameters:
baselineSnapshot
:string
| file path of the baseline heap snapshottargetSnapshot
:string
| file path of the target heap snapshotfinalSnapshot
:string
| file path of the final heap snapshot
Returns:
SnapshotResultReader
| the ResultReader instanceExamples:
const {SnapshotResultReader, findLeaks} = require('@memlab/api');
// baseline, target, and final are file paths of heap snapshot files
const reader = SnapshotResultReader.fromSnapshots(baseline, target, final);
const leaks = await findLeaks(reader);