시작하기: 메모리 누수 분석

Java™에서 객체가 부적절하게 참조에 집착하는 경우에 종종 발생하는 메모리 누수는 성능을 떨어뜨리며 결과적으로 프로그램이 손상될 수 있습니다. 프로파일링 및 로깅 Perspective에는 어플리케이션의 메모리 사용을 분석하고 이 누수를 발견하기 위한 보기가 포함됩니다.

메모리 누수 분석을 위해 다음 보기를 사용할 수 있습니다.

누수를 식별한 후 Probekit을 사용하여 누수될 수 있는 특정 객체를 검사하도록 사용자 정의 프로브를 설계할 수 있습니다.

누수 후보를 신속하게 식별하려면 메모리 누수 분석 프로파일링 세트로 프로파일하여 메모리 누수 분석을 수행하십시오. 또한 메모리 분석 프로파일링 세트를 사용하여 프로파일하면 메모리 사용을 조사할 수 있습니다. 객체 참조 그래프, 객체 참조 및 객체 세부사항 보기를 사용하여 해당 데이터를 찾아볼 수는 있으나 이 데이터를 누수 후보 목록을 생성하는 데 사용할 수 없습니다.

상위 주제: 런타임 문제점 판별 시작하기

메모리 누수 분석 수행

메모리 누수 분석은 고급 알고리즘을 사용하여 두 힙 덤프의 비교를 통해 잠재적 메모리 누수를 식별합니다. 힙 덤프를 수동으로 캡처할 수 있도록 또는 프로파일링 세트에 지정된 시간에 힙 덤프를 자동으로 캡처하도록 프로파일링 형상을 정의할 수 있습니다.

전제조건:

누수를 분석하려면 다음을 수행하십시오.

  1. 프로파일 대화 상자의 프로파일링 탭에서 메모리 누수 분석 - 수동 힙 덤프 또는 메모리 누수 분석 - 정기 힙 덤프 프로파일링 세트를 선택하십시오.
  2. 프로파일을 눌러서 어플리케이션을 시작하십시오. 누수 후보 보기가 열리고 프로파일링 실행에 대한 상태 정보가 표시됩니다.
  3. 수동 힙 덤프를 캡처하는 경우에는 다음을 수행하십시오.
    1. 어플리케이션 준비: 메모리에 있어야 하는 모든 항목이 메모리에 있을 때까지 어플리케이션을 사용하십시오. 여러 차례 조사하고자 하는 트랜잭션을 실행하십시오.
    2. 누수 후보 보기에서 힙 덤프 캡처 단추 힙 덤프 캡처 단추를 눌러 첫 번째 힙 덤프를 캡처하십시오. 힙 덤프가 프로파일링 자원으로 프로파일링 모니터에 추가됩니다.
    3. 추가로 조사하고자 하는 트랜잭션을 수행하십시오.
    4. 두 번째 힙 덤프를 캡처하십시오. 이제 어플리케이션을 종료할 수 있습니다.
  4. 정기 힙 덤프를 캡처하는 경우, 두 힙 덤프를 모두 캡처하고 분석을 시작할 수 있음을 누수 후보 보기에서 표시할 때까지 어플리케이션이 실행되도록 하십시오. 기본적으로, 첫 번째 힙 덤프는 10분(600초) 후에 캡처되며 두 번째는 추가 10분 후에 캡처됩니다. 이제 어플리케이션을 종료할 수 있습니다.
  5. 누수 후보 보기에서 누수 분석 단추 누수 분석 단추를 누르십시오.
  6. 누수 분석 옵션 선택 대화 상자에서 확인을 누르십시오. 분석이 완료되면 누수 후보 보기는 메모리를 누수할 가능성이 가장 높은 객체를 먼저 나열하면서 두 번째 힙 덤프 시점에서 객체에 대한 참조를 계속 보유 중인 객체를 힙에 나열합니다.
  7. 가장 가능성이 큰 누수 후보를 두 번 눌러서 이를 객체 참조 그래프 보기에 표시하십시오. 그래프는 누수 경로(참조를 보유 중인 객체) 및 누수 가능성이 있는 객체 간의 경로를 강조표시하므로 그래프에서 탐색할 수 있습니다. 객체 또는 경로 세그먼트 위에 커서를 놓으면 이에 대한 통계 정보가 표시됩니다. 이러한 방법으로 보유 중인 메모리 양을 검사하고 참조를 제거할 수 있는지 여부를 고려할 수 있습니다.
  8. 객체 참조 그래프 보기에서 객체를 두 번 눌러서 객체 세부사항 보기에 객체 정보를 표시하십시오. 이 보기는 객체 레퍼러(현재 객체를 참조하는 객체) 및 레퍼리(현재 객체가 참조하는 객체)에 대한 추가 데이터를 포함하여 현재 객체에 대한 모든 정보를 테이블 형식으로 표시합니다.

가비지 콜렉터에서 불필요한 객체를 수집할 수 있도록 코드를 수정하여 더 이상 필요없는 참조를 정리할 수 있습니다. 누수를 수정했는지 확인하고 추가 누수를 발견하려면 어플리케이션을 다시 프로파일하십시오.

자세한 정보를 보려면 메모리 누수 분석을 읽으십시오.

메모리 분석으로 메모리 사용 조사

메모리/누수 분석 프로파일링 유형의 메모리 분석 프로파일링 세트를 사용하면 객체 참조를 수집하고 힙 덤프를 볼 수 있습니다. 이 데이터를 객체 참조 그래프, 객체 참조 및 객체 세부사항 보기에서 볼 수는 있으나 누수 후보 목록을 생성하는 데 사용할 수 없습니다.

메모리 사용을 조사하려면 다음을 수행하십시오.

  1. 프로파일 대화 상자의 프로파일링 탭에서 메모리 분석 프로파일링 세트를 선택하십시오. 참고로, 이 프로파일링 세트는 누수 후보를 자동으로 식별하지 않습니다.
  2. 프로파일을 눌러서 어플리케이션을 시작하십시오.
  3. 분석하고자 하는 어플리케이션의 일부를 실행하십시오.
  4. 프로파일링 모니터에서 에이전트 프로파일링 자원을 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 객체 참조 수집을 선택하십시오. 이제 프로그램을 종료할 수 있습니다. 실행을 위해 데이터가 수집된 프로파일링 자원이 프로파일링 모니터에 나타납니다.
  5. 객체 참조를 표시하려면 프로파일링 자원을 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 열기 도구...와 표시하려는 보기 이름을 차례로 선택하십시오.
이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.