문제

Eclipse Memory Manager를 사용하여 Java 코드에서 메모리 누출을 감지 한 사람이 있습니까? 메모리 관리자 사용에 관한 정보를 찾기에 좋은 장소를 추천 할 수 있습니까? 온라인으로 무언가를 읽었으며 프로그램이 충돌 할 때까지 (메모리 오류가 발생하지 않음) 프로그램을 실행해야하며 이는 충돌 보고서를 생성합니다. 그런 다음 메모리 관리자를 사용 하여이 보고서를 열어 메모리 누출이 발생할 수있는 위치를 검사하십시오. 이것이 모두가 메모리 매니저를 사용하는 방법입니까?

도움이 되었습니까?

해결책

그렇지만 -xx :+HeapDumponOutofMemoryError Eclipse Memory Manager를 사용하기위한 현재 워크 플로우는 다음과 같습니다.

  1. 정상적으로 프로그램을 실행하십시오
  2. 기억이 나올 때까지 기다립니다.
  3. 운영 JMAP: jmap -dump:format=b,file=dump.hprof <PID>
  4. EMM에서 HPROF 파일을 엽니 다.

나는 보통 히스토그램과 지배자 트리 뷰로 작업을 시작하여 어떤 것도없는 것처럼 보이는지 확인한 다음 그곳에서 뚫습니다.

VisualVM은 힙 덤프로 작업 할 때 유용 할 수 있지만 EMM보다 훨씬 덜 효율적으로 보입니다 (EMM은 힙 덤프로드에 대한 많은 정보를 캐시합니다). NetBeans Profiler는 할당 위치를 얻고 시간 프로파일 링에 좋습니다.

다른 팁

아마도 가장 간단한 것은 프로그램을 실행하는 것입니다. HPROF (JVM과 함께 표준으로 제공) 한동안 출구를 강요합니다. HPROF의 출력은 희망적으로 몇 가지 즉각적인 포인터를 제공해야합니다. 메모리 누출.

Eclipse Memory Debugger와 달리 (나는 당신이 쓰는 것에 대해서만 잘 알고 있습니다) 실행 시점에서 통계를 수집 할 수 있습니다.

프로그램이 충돌 할 때까지 (메모리 오류가 발생하지 않음) 프로그램을 실행해야하며, 이는 충돌 보고서가 생성됩니다.

나는 이것이 사실이라고 생각하지 않는다 - 당신은 OutOfMemoryError 발생합니다 (저자 가이 문제를 코어 덤프를 저장하는 일종의 JVM 버그와 혼동하고 있다고합니다).

최상의 절차는 JMAP; 이것은 힙의 내용을 이진 파일 (일반적으로 HPROF 파일로 알려짐)으로 출력합니다. 그런 다음이 파일을 여러 분석기에서 분석 할 수 있습니다.

  • jhat -HPROF 파일을 분석하고 내장 된 웹 서버를 시작하여 웹 브라우저 /보기 보고서를 통해 힙을 분석 할 수있는 Sun Tool. 나는 이것이 있음을 발견했다 매우 큰 힙의 경우 느리게.
  • VisualVM - JDK와 번들로 제공되는 멋진 디버깅/문제 해결 도구. 무엇보다도 이것은 실행중인 덤프뿐만 아니라 실행중인 덤프의 힙 덤프를 생성하는 데 사용될 수도 있습니다. 그래도 큰 HPROF 파일도로드하는 것이 매우 느리다는 것을 알았습니다.
  • 일식 메모리 분석기 -HPROF 파일을 생성 할 수있는 Eclipse 플러그인.

Eclipse 플러그인을 사용하는 것이 좋습니다. 대형 (> 500MB) 힙 덤프 (1 분 미만)를 매우 빠르게로드하고 유용한 보고서를 생성하고 복잡한 논리가있는 쿼리 언어를 지원합니다.

이 페이지 JVM 힙 덤프 작업을 설명합니다. JHAT는 힙으로 작업하는 그래픽 방식이 적다면 더 간단하지만 동일한 덤프 파일을 Eclipse 메모리 관리자에로드 할 수도 있습니다. 현재 (1.6) JVM을 사용하는 경우 jvisualvm에서 일부 정보를 얻을 수 있습니다.

나는 일반적으로 NetBeans Profiler를 사용하여 응용 프로그램을 선호합니다. 어떤 객체가 누출되고 있는지, 대부분의 경우 생성되는 곳을 상당히 쉽게 확인할 수 있습니다. 이 작업을 수행 할 다른 도구가 몇 가지 있지만 NetBeans Profiler가 잘 작동하고 사용하기 쉽다는 것을 알고 있습니다.

사용해 볼 수 있습니다 JPROBE. 응용 프로그램을 모니터링 할 수 있으며 개체가 생성 될 때 객체를 살펴볼 수 있습니다. 또한 이것은 쓰레기를 수집하지 않는 물건을 분석하는 데 도움이 될 것입니다.

무료는 아니지만 시험 라이센스가 제공되므로 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top