モジュール基本モジュール

モジュールプロファイラー

メモリプロファイラーモジュール

説明書:

1
var profiler = require('profiler');

静的関数

getHeapCodeStatistics

Get = v8 ヒープ内のコードとそのメタデータに関する統計

1
static Object profiler.getHeapCodeStatistics();

返される結果:

  • Object、メタデータの統計情報を返します。

getHeapSpaceStatistics

v8 ヒープ メモリの詳細な使用状況を取得する

1
static Array profiler.getHeapSpaceStatistics();

返される結果:

  • Array、ヒープ メモリの詳細な使用量を返します。

getHeapStatistics

v8 ヒープ メモリ使用量の統計を取得する

1
static Object profiler.getHeapStatistics();

返される結果:

  • Object、ヒープメモリ使用量に関する統計を返します。

saveSnapshot

指定した名前でヒープ スナップショットを保存します

1
static profiler.saveSnapshot(String fname);

呼び出しパラメータ:

  • fname: 文字列、ヒープスナップショット名

loadSnapshot

指定された名前に基づいてヒープ スナップショットを読み取ります

1
static HeapSnapshot profiler.loadSnapshot(String fname);

呼び出しパラメータ:

  • fname: 文字列、ヒープスナップショット名

返される結果:

  • HeapSnapshot、読み取りヒープのスナップショットを返します。

takeSnapshot

現在の時刻ノードのヒープ スナップショットを取得します。ヒープ スナップショットは、現時点での JS ヒープの状態を記録します。

1
static HeapSnapshot profiler.takeSnapshot();

返される結果:

  • HeapSnapshot、取得したヒープ情報のスナップショットを返します。

diff

指定された関数を実行し、実行前と実行後の v8 ヒープの変更を比較します。

1
static Object profiler.diff(Function test);

呼び出しパラメータ:

  • test: テスト対象の関数を指定した関数

返される結果:

  • Object、比較結果を返します

start

実行ステータスのサンプリング ログを開始します

1 2 3
static Timer profiler.start(String fname, Integer time = 60000, Integer interval = 100);

呼び出しパラメータ:

  • fname: 文字列、指定されたログ ストレージ ファイル名
  • time: 整数、サンプリング時間を指定します。デフォルトは 1 分です。
  • interval: 整数、間隔時間を指定します。デフォルトは 100 ミリ秒です。

返される結果:

  • Timer、サンプリング タイマーを返します。clear メソッドを使用してサンプリングを早期に停止できます。

絶え間ない

Node_Hidden

ユーザーに表示するときにフィルターで除外できる非表示のノード

1
const profiler.Node_Hidden = 0;

Node_Array

配列

1
const profiler.Node_Array = 1;

Node_String

1
const profiler.Node_String = 2;

Node_Object

JS オブジェクト (文字列と配列を除く)

1
const profiler.Node_Object = 3;

Node_Code

コンパイルされたコード

1
const profiler.Node_Code = 4;

Node_Closure

関数クロージャー

1
const profiler.Node_Closure = 5;

Node_RegExp

正規表現

1
const profiler.Node_RegExp = 6;

Node_HeapNumber

ヒープ内のソートされた数値

1
const profiler.Node_HeapNumber = 7;

Node_Native

ネイティブ オブジェクト (非 v8 ヒープ)

1
const profiler.Node_Native = 8;

Node_Synthetic

合成オブジェクト

1
const profiler.Node_Synthetic = 9;

Node_ConsString

連結された文字列

1
const profiler.Node_ConsString = 10;

Node_SlicedString

分割文字列

1
const profiler.Node_SlicedString = 11;

Node_Symbol

シンボル (ES6)

1
const profiler.Node_Symbol = 12;

Node_SimdValue

ヒープ内のソートされた SIMD 値 (ES7)

1
const profiler.Node_SimdValue = 13;

Edge_ContextVariable

関数内の変数

1
const profiler.Edge_ContextVariable = 0;

Edge_Element

配列内の要素

1
const profiler.Edge_Element = 1;

Edge_Property

名前付きオブジェクトのプロパティ

1
const profiler.Edge_Property = 2;

Edge_Internal

JSはリンクに入れない

1
const profiler.Edge_Internal = 3;

Edge_Hidden

空間サイズを事前に計算する必要があるノードを指します

1
const profiler.Edge_Hidden = 4;

Edge_Shortcut

空間サイズを事前に計算できないノードを指します

1
const profiler.Edge_Shortcut = 5;

Edge_Weak

弱い参照 (GC によって無視される)

1
const profiler.Edge_Weak = 6;