`
newslxw
  • 浏览: 207783 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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/

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics