Skip to main content

Class: BaseAnalysis

Hierarchy

Constructors

new BaseAnalysis()

Methods

analyzeSnapshotFromFile(file, options?)

Run heap analysis for a single heap snapshot file

  • Parameters:
    • file: string | the absolute path of a .heapsnapshot file.
    • options: RunHeapAnalysisOptions | optional configuration for the heap analysis run
  • Returns: Promise<AnalyzeSnapshotResult> | this API returns AnalyzeSnapshotResult, which contains the logging file of analysis console output. Alternatively, to get more structured analysis results, check out the documentation of the hosting heap analysis class and call the analysis-specific API to get results after calling this method.
  • Example:
const analysis = new StringAnalysis();
// analysis console output is saved in result.analysisOutputFile
const result = await analysis.analyzeSnapshotFromFile(snapshotFile);
// query analysis-specific and structured results
const stringPatterns = analysis.getTopDuplicatedStringsInCount();

Additionally, you can specify a working directory to where the intermediate, logging, and final output files will be dumped:

const analysis = new StringAnalysis();
// analysis console output is saved in result.analysisOutputFile
// which is inside the specified working directory
const result = await analysis.analyzeSnapshotFromFile(snapshotFile, {
// if the specified directory doesn't exist, memlab will create it
workDir: '/tmp/your/work/dir',
});

analyzeSnapshotsInDirectory(directory, options?)

Run heap analysis for a series of heap snapshot files

  • Parameters:
    • directory: string | the absolute path of the directory holding a series of .heapsnapshot files, all snapshot files will be loaded and analyzed in the alphanumerically ascending order of those snapshot file names.
    • options: RunHeapAnalysisOptions | optional configuration for the heap analysis run
  • Returns: Promise<AnalyzeSnapshotResult> | this API returns AnalyzeSnapshotResult, which contains the logging file of analysis console output. Alternatively, to get more structured analysis results, check out the documentation of the hosting heap analysis class and call the analysis-specific API to get results after calling this method.
  • Example:
const analysis = new ShapeUnboundGrowthAnalysis();
// analysis console output is saved in result.analysisOutputFile
const result = await analysis.analyzeSnapshotsInDirectory(snapshotDirectory);
// query analysis-specific and structured results
const shapes = analysis.getShapesWithUnboundGrowth();
  • Additionally, you can specify a working directory to where the intermediate, logging, and final output files will be dumped:
const analysis = new ShapeUnboundGrowthAnalysis();
// analysis console output is saved in result.analysisOutputFile
// which is inside the specified working directory
const result = await analysis.analyzeSnapshotsInDirectory(snapshotDirectory, {
// if the specified directory doesn't exist, memlab will create it
workDir: '/tmp/your/work/dir',
});

getCommandName()

Get the name of the heap analysis, which is also used to reference the analysis in memlab command-line tool.

The following terminal command will initiate with this analysis: memlab analyze <ANALYSIS_NAME>

  • Returns: string | the name of the analysis
  • Examples:
const analysis = new YourAnalysis();
const name = analysis.getCommandName();

getDescription()

Get the textual description of the heap analysis. The description of this analysis will be printed by: memlab analyze list


getOptions()

override this method if you would like CLI to print the option info


process(options)

Callback for memlab analyze <command-name>. Do the memory analysis and print results in this callback The analysis should support: 1) printing results on screen 2) returning results via the return value

  • Parameters:
    • options: HeapAnalysisOptions | This is the auto-generated arguments passed to all the process method that your self-defined heap analysis should implement. You are not supposed to construct instances of this class.
  • Returns: Promise<any>
  • Source:
  • Hierarchy
  • Constructors
    • new BaseAnalysis()
  • Methods
    • analyzeSnapshotFromFile(file, options?)
    • analyzeSnapshotsInDirectory(directory, options?)
    • getCommandName()
    • getDescription()
    • getOptions()
    • process(options)