위키득계정 ↗
기술

Eclipse Memory Analyzer

Eclipse Memory Analyzer기술
약칭
MAT
주요 입력
Java 힙 덤프
분석 대상
객체와 참조 및 메모리 점유
대표 기능
히스토그램과 지배자 트리
Eclipse Memory Analyzer는 Java 힙 덤프를 분석해 객체의 메모리 사용과 참조 관계를 조사하는 도구다. MAT라는 약칭으로도 불리며 객체가 회수되지 않는 이유와 큰 메모리 점유의 원인을 찾는 데 사용한다.

시점의 객체 구성 조사

힙 덤프는 특정 시점의 Java 객체 정보를 담는다. 분석기는 클래스별 인스턴스 수와 객체 크기 및 클래스 로더 등의 관점으로 구성을 보여 준다. 객체의 들어오는 참조와 나가는 참조를 따라가며 메모리의 연결 관계를 조사할 수 있다.

객체가 유지시키는 메모리

지배자 트리는 큰 객체와 그 객체가 유지시키는 다른 객체의 관계를 살피는 데 쓰인다. 객체 자체의 크기와 함께 보유 크기를 분석하면 어떤 참조 구조가 메모리를 붙잡고 있는지 파악할 수 있다. 클래스 로더나 패키지로 묶어 조사 범위를 나눌 수도 있다.

회수되지 않는 이유의 탐색

객체에서 가비지 수집 루트로 이어지는 참조 경로는 해당 객체가 왜 유지되는지 보여 준다. 더 이상 논리적으로 쓰지 않더라도 참조가 남으면 회수되지 않을 수 있다. 누수 의심 보고서는 큰 객체 집합 등을 후보로 제시해 추가 조사를 돕는다.

관련 문서

VisualVM / Memray / Memcheck / Java / 가비지 컬렉션 / 디버깅