할당 타임라인 도구를 사용하여 제대로 가비지 컬렉션되지 않고 메모리를 계속 보유하는 객체를 찾습니다.
목표 이전 도구의 작동 방식
할당 타임라인 보고서는 힙 프로파일러의 자세한 스냅샷 정보를 타임라인 패널의 증분 업데이트 및 추적과 결합합니다. 이러한 도구와 마찬가지로 힙 할당을 추적하려면 기록을 시작하고 일련의 작업을 실행한 다음 분석을 위해 기록을 중지해야 합니다.
이 도구는 녹화 중에 주기적으로 (50밀리초마다 한 번) 힙 스냅샷을 찍고 녹화 종료 시 최종 스냅샷을 한 번 찍습니다.
할당 타임라인 보고서 기록
할당 타임라인 도구를 사용하려면 다음 단계를 따르세요.
- DevTools에서 메모리 패널을 엽니다.
- 타임라인에 할당 프로필을 사용 설정합니다.
- 시작 버튼을 눌러 녹화를 시작합니다.
힙 할당 프로필 읽기
힙 할당 프로필은 객체가 생성되는 위치를 표시하며 보관 경로를 식별합니다. 다음 스냅샷에서 상단의 막대는 힙에서 새 객체가 발견된 시점을 나타냅니다.
각 막대의 높이는 최근 할당된 객체의 크기에 해당하며 막대의 색상은 이러한 객체가 최종 힙 스냅샷에 여전히 있는지 여부를 나타냅니다. 파란색 막대는 타임라인 끝에 여전히 활성 상태인 객체를 나타내고, 회색 막대는 타임라인 중에 할당되었지만 이후 가비지 컬렉션된 객체를 나타냅니다.
확대하여 Constructor 창을 필터링하면 지정된 기간 동안 할당된 객체만 표시할 수 있습니다. 확대하려면 타임라인에서 집중하려는 기간을 마우스로 드래그합니다.
생성자 창에서 특정 생성자를 클릭하면 유지자 창에 유지 트리가 표시됩니다. 객체의 유지 경로를 검사하면 객체가 수집되지 않은 이유를 파악하기에 충분한 정보가 제공되며, 불필요한 참조를 삭제하기 위해 필요한 코드 변경을 할 수 있습니다.
함수별 메모리 할당 보기
JavaScript 함수별 메모리 할당을 볼 수도 있습니다. 자세한 내용은 함수별 메모리 할당 조사를 참고하세요.