Milten.ioMilten

메모리 누수

반복 힙 스냅샷 분석을 통한 메모리 누수 감지

장점

반복 힙 스냅샷 비교
도구가 페이지를 여러 번 탐색하고 반복 간 힙 스냅샷을 비교합니다 — 일회성 할당이 아닌 실제 메모리 증가를 확인합니다.
4가지 카테고리의 누수 감지
누수 힙 객체, 증가하는 컬렉션(Array, Map, Set), 축적된 이벤트 리스너, 탐색 후 메모리에 남아 있는 분리된 DOM 노드를 감지합니다.
바이트 단위 메모리 델타 추적
각 페이지가 반복당 몇 바이트를 누수하는지 정확히 확인할 수 있으며, 각 의심스러운 객체의 보유 크기 델타와 GC 루트로부터의 거리를 제공합니다.
다중 페이지 자동 크롤링
사이트의 페이지를 자동으로 탐색하며 각 페이지에서 누수 감지를 실행합니다 — 하나의 경로가 아닌 전체 사용자 여정에서 누수를 포착합니다.

작동 방식

도구

속도 스캐너
INP 디버거
백/포워드 캐시 테스트
메모리 누수
React Scan

FAQ

도구가 페이지를 로드하고 힙 스냅샷을 찍은 후, 다른 페이지로 이동했다가 여러 번 돌아오고, 다시 스냅샷을 찍습니다. 반복 간에 일관되게 증가하는 객체는 누수로 표시되며, 일회성 할당은 제외됩니다.

분리된 DOM 노드는 페이지에서 제거되었지만 JavaScript 참조에 의해 메모리에 남아 있는 HTML 요소입니다. 단일 페이지 애플리케이션에서 메모리 누수의 일반적인 원인입니다.

네. 도구는 반복 간 각 이벤트 리스너 유형의 수를 추적합니다. 리스너 수가 정리되지 않고 증가하면 특정 이벤트 이름과 영향 받는 DOM 노드와 함께 표시됩니다.

물론입니다. SPA는 전체 페이지 새로고침 없이 컴포넌트가 마운트/언마운트되기 때문에 메모리 누수의 가장 흔한 원인입니다. 반복 탐색 패턴은 이 시나리오를 위해 특별히 설계되었습니다.

보고서에 객체 유형, 보유 크기, 성장 패턴이 표시됩니다. 일반적인 수정 방법에는 useEffect 정리 함수에서 이벤트 리스너 제거, 삭제된 DOM 노드에 대한 참조 null 처리, 인터벌 또는 타임아웃 정리가 포함됩니다.
쿠키 사용 안내

당사는 귀하가 최상의 경험을 할 수 있도록 쿠키를 사용합니다. 당사가 쿠키를 사용하는 방법에 대한 자세한 내용은 쿠키 정책을 참조하세요.