1

Google에서 말하는 NodeJS/Express/React 애플리케이션에 약간 문제가 있습니다.Chrome 개발자 도구에서 힙 덤프 프로파일 링 (메모리 누수)

문제는 메모리 사용량이 계속 올라가고 멈추지 않는다는 것입니다. 느리고 안정적이어서 노드가 충돌합니다. 노드 힙 덤프 (heapdump)를 사용하여 만든 힙 덤프가 여러 개 있지만 누출을 올바르게 식별하는 방법을 모르겠습니다.

내 스냅 샷 이미지를 공유합니다. 나는이 문제가 될 수 있어야합니다 상단에 나타납니다 이러한 개체/유형의 가정 일 때문에 얕은 크기에 따라 분류되어 있습니다 : 나는 아래에서 볼 수 있듯이

enter image description here

이있다 "PROMIS가에서 @ 585"그 나는 여러 곳에서 볼 수 있으며, 그 곳이 될 수는 있지만 그 선, 기능 또는 구성 요소를 식별 할 수는 없습니다.

아무도 도와 줄 수 있습니까? 원하는 경우 더 많은 스크린 샷을 공유 할 수 있습니다.

감사합니다.

+0

아무도 그 기능을 식별하는 방법을 보여 줄 수 없습니까? – rmartrenado

답변

1

문제점을 발견했습니다.

내 앱에서 React Body Classname을 사용하고 있으므로 다른 경로를로드 할 때 클라이언트 측에서 본문 클래스를 변경할 수 있습니다.

https://github.com/iest/react-body-classname

그리고 :

이 내가 이야기하고있는 모듈이이 NPM 모듈은 메모리 누수를 방지하기 위해 당신은 서버 측 렌더링을 수행 할 때 되감기() funcion와 함께 사용되어야합니다 메모리 누수를 피하기 위해 다음과 같이 호출합니다.

BodyClassName.rewind() 

기본 App.js 컨테이너 구성 요소의 렌더링 기능에서 이렇게하면 사용자가 착륙하는 url에 상관없이 Rewind()가 항상 호출되므로 가비지 수집 할 수있는 데이터가 향후 적절하게 해제됩니다.

이제 우리의 앱은 멋지고 안정적인 120MB의 메모리 사용 상태를 유지합니다.

아무튼 감사합니다. D