Akashic Records

VM 분석 : Chapter 1 Performance - 2 / HAT 본문

오래된글/Articles

VM 분석 : Chapter 1 Performance - 2 / HAT

Andrew's Akashic Records 2018. 4. 19. 14:43
728x90

HAT(The Heap Analysis Tool)

HAT은 java의 비표준 옵션인 –Xrunhprof 로 분석된 바이너리 형태의 데이터를 분석하여 웹브라우져로 보여주는 기능을 가진다.


HAT의 설치와 실행

1. https://hat.dev.java.net/ 에서 HAT의 최신 버전을 다운 받는다.

2. 다운받은 파일을 압축을 풀고 [HAT_HOME]bin 디렉토리를 PATH에 추가한다.

3. java -Xrunhprof:file=dump.hprof,format=b whileUnit 와 같이 -Xrunhprof옵션에 format=b 을 추가하여 바이너리 형태로 분석 파일을 생성한다.

4. dump.hprof 파일을 [HAT_HOME]bin 디렉토리로 복사한다.(필자는 HAT을 PATH에 추가하지 않아서 이렇게 했습니다.)

5. hat -port=7002 dump.hprof 명령어를 실행한다.

6. 브라우져를 실행하여 http://localhost:7002 을 들어간다.

분석내용을 보면 먼가 아쉬운 점이 많이 느껴진다. 향후 버전에서는 더 많은 기능을 지원하기를 기대한다.

--------------------------------------------------------------------------------------------------------

JAVA 6에는 jhat이라는 이름으로 JDK에 포함되어 있습니다.

jhat [ options ] <heap-dump-file>

heap-dump-file

Java binary heap dump file to be browsed. For a dump file that contains multiple heap dumps, you may specify which dump in the file by appending "#<number> to the file name, i.e. "foo.hprof#3".

OPTIONS

-stack false/true

Turn off tracking object allocation call stack. Note that if allocation site information is not available in the heap dump, you have to set this flag to false. Default is true.

-refs false/true

Turn off tracking of references to objects. Default is true. By default, back pointers (objects pointing to a given object a.k.a referrers or in-coming references) are calculated for all objects in the heap.

-port port-number

Set the port for the jhat's HTTP server. Default is 7000.

-exclude exclude-file

Specify a file that lists data members that should be excluded from the "reachable objects" query. For example, if the file lists java.lang.String.value, then, whenever list of objects reachable from a specific object "o" are calculated, reference paths involving java.lang.String.value field will not considered.

-baseline baseline-dump-file

Specify a baseline heap dump. Objects in both heap dumps with the same object ID will be marked as not being "new". Other objects will be marked as "new". This is useful while comparing two different heap dumps.

-debug int

Set debug level for this tool. 0 means no debug output. Set higher values for more verbose modes.

-version

Report version number and exit.

-h

Output help message and exit.

-help

Output help message and exit.

-J<flag>

Pass <flag> to the Java virtual machine on which jhat is run. For example, -J-Xmx512m to use a maximum heap size of 512MB.



728x90
Comments