모듈 프로파일러
메모리 프로파일러 모듈
지침:
1var profiler = require('profiler');
정적 함수
getHeapCodeStatistics
Get = v8 힙의 코드 및 해당 메타데이터에 대한 통계
1static Object profiler.getHeapCodeStatistics();
결과 반환:
- Object, 메타데이터의 통계 정보를 반환합니다.
getHeapSpaceStatistics
v8 힙 메모리의 자세한 사용량 가져오기
1static Array profiler.getHeapSpaceStatistics();
결과 반환:
- Array, 힙 메모리의 자세한 사용량을 반환합니다.
getHeapStatistics
v8 힙 메모리 사용량 통계 가져오기
1static Object profiler.getHeapStatistics();
결과 반환:
- Object, 힙 메모리 사용량에 대한 통계를 반환합니다.
saveSnapshot
지정된 이름으로 힙 스냅샷 저장
1static profiler.saveSnapshot(String fname);
호출 매개변수:
- fname: 문자열, 힙 스냅샷 이름
loadSnapshot
지정된 이름을 기반으로 힙 스냅샷 읽기
1static HeapSnapshot profiler.loadSnapshot(String fname);
호출 매개변수:
- fname: 문자열, 힙 스냅샷 이름
결과 반환:
- HeapSnapshot, 읽기 힙 스냅샷을 반환합니다.
takeSnapshot
현재 시간 노드의 힙 스냅샷을 얻습니다. 힙 스냅샷은 현재 순간의 JS 힙 상태를 기록합니다.
1static HeapSnapshot profiler.takeSnapshot();
결과 반환:
- HeapSnapshot, 획득한 힙 정보 스냅샷을 반환합니다.
diff
주어진 함수를 실행하고 실행 전후 v8 힙의 변경 사항을 비교합니다.
1static Object profiler.diff(Function test);
호출 매개변수:
- test: 함수, 테스트할 함수가 제공됩니다.
결과 반환:
- Object, 비교 결과를 반환합니다.
start
실행 상태 샘플링 로그 시작
1
2
3static Timer profiler.start(String fname,
Integer time = 60000,
Integer interval = 100);
호출 매개변수:
- fname: 문자열, 지정된 로그 저장 파일 이름
- time: 정수, 샘플링 시간을 지정하며 기본값은 1분입니다.
- interval: 정수, 간격 시간을 지정합니다. 기본값은 100밀리초입니다.
결과 반환:
- Timer, 샘플링 타이머를 반환합니다. Clear 메소드를 통해 샘플링을 조기에 중지할 수 있습니다.
끊임없는
Node_Hidden
사용자에게 표시될 때 필터링할 수 있는 숨겨진 노드
1const profiler.Node_Hidden = 0;
Node_Array
정렬
1const profiler.Node_Array = 1;
Node_String
끈
1const profiler.Node_String = 2;
Node_Object
JS 객체(문자열 및 배열 제외)
1const profiler.Node_Object = 3;
Node_Code
컴파일된 코드
1const profiler.Node_Code = 4;
Node_Closure
기능 폐쇄
1const profiler.Node_Closure = 5;
Node_RegExp
정규식
1const profiler.Node_RegExp = 6;
Node_HeapNumber
힙에 정렬된 숫자
1const profiler.Node_HeapNumber = 7;
Node_Native
네이티브 객체(비v8 힙)
1const profiler.Node_Native = 8;
Node_Synthetic
합성 물체
1const profiler.Node_Synthetic = 9;
Node_ConsString
연결된 문자열
1const profiler.Node_ConsString = 10;
Node_SlicedString
문자열 분할
1const profiler.Node_SlicedString = 11;
Node_Symbol
기호(ES6)
1const profiler.Node_Symbol = 12;
Node_SimdValue
힙에 정렬된 SIMD 값(ES7)
1const profiler.Node_SimdValue = 13;
Edge_ContextVariable
함수의 변수
1const profiler.Edge_ContextVariable = 0;
Edge_Element
배열의 요소
1const profiler.Edge_Element = 1;
Edge_Property
명명된 개체의 속성
1const profiler.Edge_Property = 2;
Edge_Internal
JS가 링크에 들어갈 수 없습니다
1const profiler.Edge_Internal = 3;
Edge_Hidden
공간 크기를 미리 계산해야 하는 노드를 가리킵니다.
1const profiler.Edge_Hidden = 4;
Edge_Shortcut
공간 크기를 미리 계산할 수 없는 노드를 가리킵니다.
1const profiler.Edge_Shortcut = 5;
Edge_Weak
약한 참조(GC에서 무시됨)
1const profiler.Edge_Weak = 6;