Модуль Базовый модуль

Модуль профилирования

Модуль профилирования памяти

Инструкции:

1
var profiler = require('profiler');

Статическая функция

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 : String, заданное имя файла хранилища журналов
  • time : целое число, укажите время выборки, по умолчанию 1 минута
  • interval : целое число, указанный интервал, по умолчанию 100 миллисекунд

Вернуть результат:

  • Timer , вернитесь к таймеру выборки, вы можете остановить выборку заранее с помощью метода очистки

постоянная

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;