Eclipse RCP 응용 프로그램의 메모리 누수가 어떻게 감지됩니까?Eclipse RCP 응용 프로그램에서 메모리 누수가 발생했습니다.
답변
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
아래 참조 메모리 누설 감지기에 확인하는 객체입니다 에디터 /보기를 닫을 때 가비지 수집.
Windows를 사용하는 가장 간단한 방법은 예를 들어. 도구를 사용하는 동안 작업 관리자에서 eclipse.exe 프로세스. RCP 실행 파일이 다른 이름을 가진 경우이 파일을 모니터링해야합니다. 유닉스에서는 비슷한 도구를 사용할 수 있습니다 (proc 아마?).
사용 가능한 가장 집중적 인 작업을 수행하십시오 (또는 특정 기능이 문제를 일으킨다 고 생각되면 사용하십시오). eclipse.exe가 사용하는 메모리 양이 집중적 인 태스크가 완료된 후에 결국 감소하지 않으면 누출 가능성이 있습니다. 결국 메모리 부족 오류가 발생합니다.
eclipse.ini (또는 .ini)의 "-Xmx"설정을 통해 응용 프로그램에서 사용할 수있는 메모리 양을 줄임으로써 메모리 부족 오류를 가속화 할 수 있습니다. 예 : -Xmx256m은 최대 256MB를 사용할 수 있음을 의미합니다. 분명히이 설정은 여전히 앱을 실행하기에 충분해야하지만, 설정을 낮추면 가비지 수집 빈도가 높아져 누출이 더욱 분명해질 것입니다.
메모리 프로파일 러가 필요합니다 (다른 사람들이 언급했듯이). 일단 훌륭한 도구를 사용하면 문제를 쉽게 발견 할 수 있습니다. 우리의 테스트를위한 http://www.yourkit.com/
, 그것은 아주 잘 작동 DEVS가 시스템에 로컬로 사용할 수 있도록 라이센스를 떠했습니다
우리는 사용합니다.
기본적으로 수행중인 작업의 스냅 숏을 만든 다음 할당되지 않은 항목과 해제되지 않은 항목을 살펴 봅니다.
편집 : 추가하는 것을 잊어 버렸습니다.이 도구는 일식에 통합되었습니다.
가장 간단한 솔루션은 Java JDK : Java VisualVM과 함께 제공됩니다.
그것은 7
또한 메모리 프로파일 러, 힙 워커와 Eclipse integration을 포함 JDK 6 업데이트 이후 bin 디렉토리 (Windows에서 jvisualvm.exe)에 위치하고 있습니다.
https://visualvm.dev.java.net/images/getstarted/vvm-anagram-profiler.png
을 참조하십시오 (너무 나쁜 나는 이미지 태그를 사용하도록 허용하고 있지 않다)- 1. Classic ASP 응용 프로그램에서 메모리 누수가 발생했습니다.
- 2. 코코아에서 메모리 누수가 발생했습니다.
- 3. Eclipse RCP 응용 프로그램에서 -nl de 무시됩니다.
- 4. 아주 기본적인 응용 프로그램에서 Spring jdbc 템플릿 메모리 누수가 발생했습니다.
- 5. MVVM 응용 프로그램에서 Silverlight의 TimePicker를 사용할 때 메모리 누수가 발생했습니다.
- 6. navBar로 메모리 누수가 발생했습니다.
- 7. VB에서 메모리 누수가 발생했습니다.
- 8. MPMoviePlayerController에서 메모리 누수가 발생했습니다.
- 9. NSXMLParser에서 메모리 누수가 발생했습니다.
- 10. JDBC4Connection에서 메모리 누수가 발생했습니다.
- 11. SecItemCopyMatching 메모리 누수가 발생했습니다.
- 12. Excel에서 메모리 누수가 발생했습니다.
- 13. UIButton에서 메모리 누수가 발생했습니다.
- 14. libxml2.2에서 메모리 누수가 발생했습니다.
- 15. Eclipse 응용 프로그램에서 Eclipse rcp disable exit 버튼
- 16. DLL 언로드시 메모리 누수가 발생했습니다.
- 17. 인스트루먼트에서 decodeObjectForKey의 메모리 누수가 발생했습니다.
- 18. 시뮬레이터에없는 장치에서 메모리 누수가 발생했습니다.
- 19. VCial에서 CDialog 메모리 누수가 발생했습니다.
- 20. websphere에서 메모리 누수가 발생했습니다. ValueHandlerPool (의심스러운)
- 21. MBProgressHUD를 사용하여 메모리 누수가 발생했습니다.
- 22. 개발 중 메모리 누수가 발생했습니다.
- 23. 안드로이드에서 메모리 추적/누수가 발생했습니다.
- 24. 정적 NSString에서 메모리 누수가 발생했습니다.
- 25. NSString에서 IOS 메모리 누수가 발생했습니다.
- 26. CoreData로 iphone 메모리 누수가 발생했습니다
- 27. Linux 장치에서 메모리 누수가 발생했습니다.
- 28. iPhone - 메모리 누출 문제 - 메모리 누수가 발생했습니다.
- 29. UIview를 UIimage로 변환하여 메모리 누수가 발생했습니다.
- 30. 전자 메일을 보내는 동안 메모리 누수가 발생했습니다.