读书人

JVM内存储器分析工具

发布时间: 2012-09-10 11:02:32 作者: rapoo

JVM内存分析工具

参考

jvm内存分解:?? http://liangpzhmz.blog.163.com/blog/static/101716295200961321333915/

?

http://blog.csdn.net/fenglibing/article/details/6298326

?

http://blog.csdn.net/fenglibing/article/details/6411953

?

http://apps.hi.baidu.com/share/detail/23550625

?

jdk的工具用途介绍:

http://blog.csdn.net/kelly859/article/details/5827365

?

jps查看JAVA进程

jmap查看内存中对象及占用空间,比较那些对象被回收,可以结合MAT工具 http://download.eclipse.org/mat/1.1/update-site/

?

jstat查看内存具体情况,分析内存

jconsole GUI工具 http://af1200.blog.163.com/blog/static/17132274201051013550361/

http://blog.sina.com.cn/s/blog_5dc29fcc0100xiex.html

?

MAT报告分析说明:? http://tech.ddvip.com/2010-07/1279867858157995.html

http://rednaxelafx.iteye.com/blog/1048958

?

shallow heap和retained heap解析 :?? http://hi.baidu.com/qmiao128/blog/item/bf9d66a4b3e313eb9152eed1.html

?

获取JAVA内存泄漏信息存储自动存储成文件的方法 http://jiangnanguying.iteye.com/blog/539697

?

两种手段获得内存泄漏时的内存中对象快照,一种是用 jmap直接获取,另一种是修改JVM参数,增加

-XX:-HeapDumpOnOutOfMemoryError?然后就可以在JVM的工作目录(classLoader的目录)找到文件

?

java.lang.OutOfMemoryError:?Java?heap?space ??

Dumping?heap?to?java_pid6280.hprof?... ??

Heap?dump?file?created?[50549348?bytes?in?1.444?secs]??

?

内存使用过高,可以用JDK参数和JMAP结合MAT或者JHAP查看内存中到底放了什么对象.

CPU使用高,可以使用jstack检查那个线程问题和死锁。

可以通过jconsole的mbean设置监控内存和死锁,线程等在一段时间内的情况,当然jprofile更好,

每次GC后,内存减少,则可能存在内存泄露问题

?

GC回收机制:

http://jeromecen1021.blog.163.com/blog/static/18851527120117274624888/

?

读书人网 >编程

热点推荐