1. JDK 내장 성능분석 도구
•
jcmd
◦
명령줄 방식 사용, JDK 7부터 제공, 기존 JDK에서 제공하는 도구를 통합한 기능 제공
•
jconsole
◦
로컬 또는 원격에서 실행중인 자바 애플리케이션 및 JVM을 모니터링할 때 사용하는 GUI 툴
◦
모니터링은 JMX(Java Management Extensions)을 사용
◦
JMX는 프로그래머들에게 자바 애플리케이션의 모니터링과 관리 기능을 제공
◦
스레드, 클래스의 사용 정보와 GC 활동 정보를 포함하여 JVM 활동정보에 대해 GUI를 사용하여 분석정보를 제공한다.
•
jhat
◦
메모리 heap dump 파일 읽고 분석하는 도구
◦
JDK 1.6 이상
•
jmap
◦
heap dump 기능을 제공하고, JVM 메모리 사용에 대한 정보 제공 함
◦
Dump된 파일은 jhat 등으로 분석해야 한다.
◦
JDK 1.6 이상
•
jinfo
◦
JVM System Property 정보를 제공하고, 동적으로 설정하는 기능 제공
◦
JVM 버전정보, 인코딩 정보 등 제공
◦
JDK 5 이상
•
jstack
◦
Java 프로세스 stack dump 수행 가능
◦
JDK 1.5 이상 (윈도우에선 1.6 이상)
•
jstat
◦
메모리 상태, GC 및 클래스 로딩 정보 등 JVM 상태를 상세하게 모니터링 가능
◦
JDK 6 이상
◦
JVM 모니터링 도구로는 jps, jstatd
•
Jvisualvm(VisualVM)
◦
GUI도구 애플리케이션 프로파일링
◦
JVM heap dump 수행 및 dump 파일 분석 등을 제공
◦
JDK 6 이상
◦
jconsole, jstat, jinfo, jstack, jmap 등등의 이전 성능 관리 도구를 엮어 통합된 정보를 그래픽 화면상에 제공
◦
NetBeans profiler 플러그인을 사용하여 기능을 제공
•
Java mission control(JMC)
◦
여러개의 JVM을 모니터링 할 수 있는 GUI 도구
◦
Heap, Thread, IO 등 다양한 분석을 지원
◦
전통적 바이트코드 방식이 아닌 Java Flight Recorder 기능을 이용
2. 3rd Party 성능분석 도구
Page 120 ~ 122을 잘 읽어보자~