모듈 기본 모듈

모듈 프로파일러

메모리 프로파일러 모듈

지침:

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: 문자열, 힙 스냅샷 이름

결과 반환:


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;