heapdump: 2개의 글
참조문서 : https://developers.google.com/web/tools/chrome-devtools/rendering-tools/js-execution 웹어플리케이션 분석할 때 쓰지만, V8_inspector을 이용하여 노드에서도 쓸 수 있다. 1. CPU Profile CPU 사용량을 기록한다. Self Time : 함수의 현재 호출을 완료하는 데 얼마나 걸린 시간 Total Time : 이 함수와 해당 함수가 호출한 모든 함수의 현재 호출을 완료하는 데 걸린 시간 2. Heap Snapshot 클릭시점에서 스냅샷 기록 Shallow Size : array string과 같이 직접적으로 메모리를 점유하고 있는 js 객체들의 크기, 실제 데이터가 있는 영역 Retained Size : GC ..
참조문서 : https://www.html5rocks.com/ko/tutorials/speed/static-mem-pools/ 1. 메모리 누수 원인 nodejs는 v8엔진에서 GC를 주기적으로 수행한다. nodejs는 메모리관리가 불완전하고 어려운데, 그 이유는 GC역시 메인스레드(이벤트루프)에서 실행되기 때문이다. 따라서 메인스레드가 바쁜 작업(CPU인텐시브)을 돌릴 경우, 메모리는 급격히 증가하는데.. GC가 낄 틈새가 없는 것이다. 2. 메모리 누수 해결방안 이러한 메모리 누수를 피하려면 3가지 방법이 있다. 모두 다 이벤트루프를 고려한 프로그래밍이다. process.nextTick과 setTimeout을 활용하여 GC가 낄 틈새를 만들어주는 것이다. 클로저와 스택의 빈번한 사용을 자제한다 GC를..