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/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值