메모리가 부족한 Java 응용 프로그램이 있는데 어떤 코드가 메모리를 할당하고 있는지 전혀 알 수 없습니다. 이걸 확인할 수있는 응용 프로그램이 있습니까? 나는 이클립스를 사용한다.Java : 모든 메모리를 사용하여 무엇을 찾으십시오
답변
eclipse를 사용하고 있으므로 Eclipse Memory Analyzer 플러그인을 사용하는 것이 좋습니다. 이 도구는 훌륭하게 작동하며 일부 누수 용의자와 함께 보고서를 제공합니다. 나는 아무런 문제없이 이것으로 1G 힙 덤프를 살펴 봤다. JDK에 포함 된 jconsole을 사용하여 덤프를 가져옵니다.
도구 작성자 중 한 명이이 도구를 사용하는 데 큰 blog 있습니다.
이것은 무료입니다.
프로필러가 필요합니다.
Yourkit 내가 찾을 수 및 문서 성능 문제가 많은 경우에 사용했습니다 훌륭한 도구입니다
JProfiler와
으로 큰 성공을 했어. Eclipse를 TPTP 프레임 워크와 함께 사용하면이 작업을 수행 할 수 있습니다. 또한 원격 응용 프로그램 서버 (프로파일 링 에이전트를 활성화하고 JVM에서 원격 디버깅을 활성화해야 함)에도 잘 작동하지만 거의 모든 J2EE 환경에 대해 프로파일 링을 실행할 수 있습니다.메모리 프로파일 러를 사용해야합니다. Sun의 JVM Tool Interface 또는 JProfiler과 같은 타사 프로파일 러를 사용할 수 있습니다. Eclipse에는 Test & Performance Tools Platform (TPTP)이라는 프로파일 링 도구가 있습니다.
많은 무료 도구가 있지만 JProfiler는 매우 좋습니다. – ggb667
누구나 좋아하는 사람이있을 것이라고 확신하지만, Netbeans을 권장합니다.
VisualVM은 몇 가지 명령 줄 JDK 도구와 간단한 프로파일 링 기능을 통합 한 시각적 도구입니다. 생산 및 개발 용으로 설계되어 Java SE 플랫폼의 모니터링 및 성능 분석 기능을 한층 강화합니다.
그리고 JDK에는 포함되어 있습니다.
요즘 나는 2.6G 힙 덤프를 생성하는 메모리 누수의 원인을 찾아야했습니다. Jhat는 충격을받지 않고 그것을 돌파하기 위해 믿을 수없는 20G 힙 크기를 요구했습니다. 이클립스 메모리 분석기는 10G 이하로 만들었습니다. 즉, 두 도구 모두 유용하지만 메모리를보다 효율적으로 사용하고 사용하기가 더 쉽기 때문에 먼저 메모리 분석기를 사용하는 것이 좋습니다.
나는 사용 된 메모리의 양에 꽤 놀랐지 만 OutOfMemory 오류를 덜 사용한다면 당신을 확신시킬 수 있습니다.
HP Diagnostics Profiler 무료 평가 (5 개 스레드는 무제한)를 사용하여 메모리 누수를 발견했습니다. 메모리 할당을 추적하고 힙 분석을 시각적으로 쉽게 할 수 있습니다.
- 1. (Java) 배열에서 가능한 모든 쌍을 찾으십시오
- 2. 모든 메서드 호출을 찾으십시오
- 3. POSIX API를 사용하여 가장 높은 사용 가능한 가상 메모리를 찾으십시오.
- 4. jquery를 사용하여 모든 일치하는 일치 항목을 찾으십시오.
- 5. Regex - 트윗에있는 모든 링크를 찾으십시오.
- 6. 행렬에서 모든 최대 값을 찾으십시오
- 7. java : 웹 사이트의 RSS 파일을 찾으십시오.
- 8. 모든 초기화 문자열에서 메모리를 비워야합니까?
- 9. Java : ArrayList로 메모리를 관리하는 방법
- 10. Java VM은 어떻게 메모리를 할당합니까?
- 11. Java : + = 무엇을 의미합니까?
- 12. PHP를 사용하여 "enddate-"로 시작하는 클래스의 모든 요소를 찾으십시오.
- 13. 'a'문자로 시작하는 mysql query를 사용하여 모든 이름을 찾으십시오.
- 14. 정규식을 사용하여 폴더에있는 파일을 찾으십시오.
- 15. 두 노드 사이의 모든 경로를 찾으십시오.
- 16. Javadoc 주석이있는 Java 코드의 좋은 예를 찾으십시오.
- 17. Java Game Server가 너무 많은 메모리를 차지합니다!
- 18. Java 애플리케이션 메모리를 어떻게 효율적으로 만드십니까?
- 19. js (jquery)가있는 모든 유튜브 링크를 찾으십시오
- 20. 두 조건이 참인 모든 레코드를 찾으십시오.
- 21. 특정 셀렉터를 사용하는 사이트의 모든 페이지를 찾으십시오.
- 22. Jquery 웹 사이트 링크의 모든 이미지를 찾으십시오
- 23. 아직 선택되지 않은 모든 라디오 그룹을 찾으십시오.
- 24. jQuery 양식 블록 외부의 모든 입력을 찾으십시오.
- 25. BST에서 x 미만의 모든 숫자를 찾으십시오.
- 26. 설치된 모든 글꼴의 추기가 이름을 찾으십시오
- 27. 자바 스크립트 : 테이블의 모든 "입력"을 찾으십시오.
- 28. jquery while 루프. 모든 클래스를 찾으십시오.
- 29. 리플렉션을 사용하여 지원 중단을 찾으십시오.
- 30. iPhone을 사용하여 RFID 태그를 찾으십시오.
+1 : 멋진 도구 ... jvm 버전이나 jvm 종류와 관련하여 제한이 있는지 알고 계십니까? – LB40
jvm 제한에 대해 잘 모르겠습니다. 1.5 및 1.6에서 사용했습니다.하지만 도구가 의존하는 이전 버전의 Java에서 힙 덤프를 가져 오는 데 어려움을 겪었습니다. – broschb