码迷,mamicode.com
首页 > 编程语言 > 详细

Java之内存诊断

时间:2016-06-13 19:02:28      阅读:968      评论:0      收藏:0      [点我收藏+]

标签:

Java 内存诊断比较容易, 需要:

1 获取heap dump

2 分析heap dump

 

获取dump之1 VM arguments: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof

reference for VM options: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

如果不指定, dump文件默认输出到user.dir中。

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid8096.hprof ...
Heap dump file created [168062394 bytes in 1.306 secs]

注意得到文件后,可用下面命令进行分析:

jmap -histo ./java_pid<pid>.hprof

 

 获取dump之2 jmap/jcmd

 jmap -dump:format=b,file=snapshot.jmap <pid>

 jcmd <process id/main class> GC.heap_dump filename=Myheapdump

 或者直接获取(histogram):

 jcmd <pid> GC.class_histogram

 jmap -histo <pid>

获取dump之3 Jconsole + HotSpotDiagnosticMXBean  (安装JDK)

注意文件存储在 user.dir下面。(用jinfo可以获取)

技术分享

分析dump之Jhat(需要JDK)

技术分享

技术分享

 

referenc:

http://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/memleaks.html#CIHGFAEG

 

Java之内存诊断

标签:

原文地址:http://www.cnblogs.com/bjfarmer/p/5505298.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!