some code이 작동하지만 메모리 누수가 있습니다.코드에서 node.js/javascript 메모리 누수 감지
node.js의 메모리 누수를 추적하기위한 좋은 전략은 무엇입니까?
누출을 찾으려면 어떤 단계를 따라야합니까?
코드에서 누출을 어떻게 추적 할 수 있습니까?
감사합니다.
some code이 작동하지만 메모리 누수가 있습니다.코드에서 node.js/javascript 메모리 누수 감지
node.js의 메모리 누수를 추적하기위한 좋은 전략은 무엇입니까?
누출을 찾으려면 어떤 단계를 따라야합니까?
코드에서 누출을 어떻게 추적 할 수 있습니까?
감사합니다.
응용 프로그램의 메모리 사용량을 프로파일 링하여 알 수 있습니다.
자바 객체는 힙에 할당되므로 힙을 덤프 할 수있는 도구가 필요합니다. 힙 덤프를 획득 한 후이를 검사하여 주어진 객체 (또는 함수)의 인스턴스가 얼마나 많은지 볼 수 있습니다.
예를 들어 코드에 대해 사용자가 연결할 때마다 소켓을 만들 수 있습니다. 3 명의 사용자가 연결되어있는 동안 힙을 덤프하면 ~ 3 개의 소켓이 표시됩니다. 해당 사용자가 연결을 끊은 후에 힙을 덤프하면 ~ 0 소켓이 표시됩니다.
사실 Chrome 힙 덤프 분석기는 Node.js 힙 덤프와 함께 사용할 수 있습니다. 그냥 https://github.com/bnoordhuis/node-heapdump
: 당신은 Node.js를 힙 덤프를 가지고 크롬에서이를 검사 할 수 있습니다 https://developers.google.com/chrome-developer-tools/docs/heap-profiling
프로젝트 : 크롬 힙 덤프 분석기에
는문서 fyi 함수는 (closure)
섹션 아래의 힙 덤프에 표시됩니다.
힙 덤프에서 유용하게 사용할 수 있도록 함수 이름을 지정하지 않아도됩니다 (이름이 필요하지 않더라도). 예를 들어
, 단지 힙 덤프에 function()
로 표시됩니다
function() { }
같은. 어디 같이
function taggedFunction() { }
는 힙 덤프에 function taggedFunction()
로 표시됩니다. 100 개의 taggedFunctions를 작성하면 힙 덤프에 taggeFunction이 100 번 표시됩니다. 기본적으로 함수의 이름을 지정하면 함수를 계속 만들고 유출하는지 여부를 파악할 수 있습니다.
좋은 링크와 OP 코드에 대한 건설적인 비평을위한 +1 –
setInterval은 모든 연결에 공통적이어야합니다. 각 사용자별로 동일한 시간을 표시하는 데 사용됩니다. 어쩌면 다른 방법이 있을까요? – BenoitD
힙 프로파일 링을 살펴 보겠습니다. 감사합니다 – BenoitD