java
[java] 메모리 누수와 힙 덤프 분석
hs_seo
2019. 6. 5. 14:54
프로그래밍에서 메모리 누수현상(Memory Leak)은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 자바의 메모리 누수 현상은 이전글을 참고 바랍니다.
2019/07/02 - [개념] - [개념] 메모리 누수(Memory Leak) 현상
힙 덤프 생성
메모리 누수 문제가 발생하면 JVM의 힙 덤프를 이용하여 메모리에 어떤 객체가 생성되어 있는지를 확인할 수 있습니다. JDK와 함께 제공되는 jmap
명령어를 이용하여 힙 덤프를 생성할 수 있습니다. 다음과 같이 입력하면 파일명으로 힙덤프 파일이 생성됩니다. PID는 jps나 ps 명령으로 확인할 수 있습니다.
$ jmap -dump:file=[파일명] [PID]
힙 덤프 분석
힙 덤프를 분석하는 프로그램은 여러 벤더에서 제공하고 있습니다. 여기서는 오라클에서 제공하는 Java Visual VM과 이클립스의 Eclipse Memory Analyzer를 이용하는 방법을 알아보겠습니다.
- Java Visual VM
- 오라클 JDK와 함께 제공
- jvisualvm 실행
- 현재 실행중인 로컬 JVM의 상태 분석 가능
- Eclipse Memory Analyzer
- 이클리스에서 제공하는 힙 덤프 분석 도구
- 다운로드 링크
- 메모리 누수 분석을 위한 Leak Suspects 제공
참고
우아한 형제들: 도움이 될수도 있는 JVM memory leak 이야기
네이버: 하나의 메모리 누수를 잡기까지
자바스크립트에서 메모리 누수의 4가지 형태
반응형