2009-05-06 3 views

답변

5

JRockit Mission Control과 함께 제공되는 메모리 누수 감지기를 Eclipse MAT과 함께 사용해보십시오. 강력한 조합입니다. 두 도구 모두 개발 용으로 무료입니다.

JRockit Mission Control을 사용하면 온라인으로 힙을 검사하고 시간이 많이 소요되는 스냅 샷을 사용하지 않고도 특정 유형의 정확한 개체를 볼 수 있습니다. 보기/편집기를 닫은 후에 편집기,보기 또는 수신기 개체가 힙에 남아 있는지 직접 볼 수 있습니다. 일반적으로보기/편집기를 유지하는 프레임 워크 리스너입니다. Windows-> 환경 설정 -> 메모리 누수 감지기 -> 경향으로 이동하여 최저 힙 사용을 설정하여을 0.0으로 설정하여 모든 객체 인스턴스를 확인해야합니다.

alt text http://download.oracle.com/docs/cd/E11035_01/jrockit/intro/wwimages/memleak2.gif

는 MAT하면 다음 누출 객체에 들고 체인을 찾아 뿌리를 스레드하는 최단 경로를 사용할 수 있습니다.코드를 수정

alt text http://dev.eclipse.org/blogs/memoryanalyzer/files/2008/04/path2gc_all.png

아래 참조 메모리 누설 감지기에 확인하는 객체입니다 에디터 /보기를 닫을 때 가비지 수집.

3

프로파일 링 도구가 필요합니다.

일식 (wiki, blog)에 Memory Analyzer 프로젝트가 있습니다.

또한 TPTP도 프로파일 링하는 것처럼 보입니다.

0

Windows를 사용하는 가장 간단한 방법은 예를 들어. 도구를 사용하는 동안 작업 관리자에서 eclipse.exe 프로세스. RCP 실행 파일이 다른 이름을 가진 경우이 파일을 모니터링해야합니다. 유닉스에서는 비슷한 도구를 사용할 수 있습니다 (proc 아마?).

사용 가능한 가장 집중적 인 작업을 수행하십시오 (또는 특정 기능이 문제를 일으킨다 고 생각되면 사용하십시오). eclipse.exe가 사용하는 메모리 양이 집중적 인 태스크가 완료된 후에 결국 감소하지 않으면 누출 가능성이 있습니다. 결국 메모리 부족 오류가 발생합니다.

eclipse.ini (또는 .ini)의 "-Xmx"설정을 통해 응용 프로그램에서 사용할 수있는 메모리 양을 줄임으로써 메모리 부족 오류를 가속화 할 수 있습니다. 예 : -Xmx256m은 최대 256MB를 사용할 수 있음을 의미합니다. 분명히이 설정은 여전히 ​​앱을 실행하기에 충분해야하지만, 설정을 낮추면 가비지 수집 빈도가 높아져 누출이 더욱 분명해질 것입니다.

0

메모리 프로파일 러가 필요합니다 (다른 사람들이 언급했듯이). 일단 훌륭한 도구를 사용하면 문제를 쉽게 발견 할 수 있습니다. 우리의 테스트를위한 http://www.yourkit.com/

, 그것은 아주 잘 작동 DEVS가 시스템에 로컬로 사용할 수 있도록 라이센스를 떠했습니다

우리는 사용합니다.

기본적으로 수행중인 작업의 스냅 숏을 만든 다음 할당되지 않은 항목과 해제되지 않은 항목을 살펴 봅니다.

편집 : 추가하는 것을 잊어 버렸습니다.이 도구는 일식에 통합되었습니다.

1

가장 간단한 솔루션은 Java JDK : Java VisualVM과 함께 제공됩니다.

그것은 7

또한 메모리 프로파일 러, 힙 워커와 Eclipse integration을 포함 JDK 6 업데이트 이후 bin 디렉토리 (Windows에서 jvisualvm.exe)에 위치하고 있습니다.

https://visualvm.dev.java.net/images/getstarted/vvm-anagram-profiler.png

https://visualvm.dev.java.net/

을 참조하십시오 (너무 나쁜 나는 이미지 태그를 사용하도록 허용하고 있지 않다)
관련 문제