모듈 기본 모듈

모듈 프로파일러

메모리 프로파일러 모듈

지침:

1
var profiler = require('profiler');

정적 함수

saveSnapshot

지정된 이름에 따라 힙 스냅샷 저장

1
static profiler.saveSnapshot(String fname);

호출 매개변수:

  • fname: 문자열, 힙 스냅샷 이름

loadSnapshot

지정된 이름에 따라 힙 스냅샷 읽기

1
static HeapSnapshot profiler.loadSnapshot(String fname);

호출 매개변수:

  • fname: 문자열, 힙 스냅샷 이름

반환 결과:


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;