Java GC 监视方法与工具

本文介绍如何配置JVM以输出GC日志,并推荐了几款实用的GC日志分析工具,如HPjmeter和HPjtune等,帮助开发者有效定位内存泄漏等问题。

项目需要,将gc的监视方法,和gc log的分析工具整理一下,

这些工具不会帮你确定Out Of Memory的具体位置, 但可以帮你确定系统是否发生了OOM

项目中有一个很可疑的函数,我们如下面的方法跑了一下,发现他确实存在内存泄漏(问题解决后另做总结).

 

问题一  让jvm输出log

打印jvm的gc log, 需要如下配置jvm启动参数:

方法1:
-Xloggc:D:/gc.log

方法2
-Xloggc:D:/gc.log -XX:+PrintGCTimeStamps -XX:-PrintGCDetails -XX:+UseConcMarkSweepGC
 

这些jvm启动参数的意义参考这里:

the Java application launcher

如果你手头有一份chm的javadoc的话, 下面这个路径可以看到同样的一份:

Java 2 SE Documentation -> technotes -> tools -> windows -> java - the Java application launcher

 

当然,不同虚拟机需要加的参数可能不一致.例如网上说:

IBM:-Xverbosegc:file=filename 或 -Xverbosegclog:filename
HP :-Xverbosegc=filename

 

问题二  分析jvm的log

 

我现在用的是HPjmeter, 和HPjtune,收费的东西公司用不了, 没调查, 但目前这两个基本满足了我的需求.

 

网上有这么一篇blog: 用HPjmeter分析jvm的gc日志和heap dump . 里面有各种工具的下载地址.

整理如下:

 

HPjmeter 下载:

ftp://ftp.hp.com/pub/gsy/HPjmeter_3.0.01.jar
ftp://ftp.hp.com/pub/gsy/hpjmeter_console_3.0.01.00_windows_setup.exe
ftp://ftp.hp.com/pub/gsy/hpjmeter_console_3.0.01.00_linux_setup.sh

 

 

HPjtune 下载:ftp://ftp.hp.com/pub/gsy (支持目录方式浏览。)

 

这篇blog中还介绍了其他的一些gc分析工具,同时也给出了相应的下载地址, 分别是:

SAP Memory Analyzer(Eclipse插件),  gcviewer,  scimark2 benchmark

 

其中一个比较有用的链接是这里: http://www.javaperformancetuning.com/tools/

看名字便知道, 这个网站里面有关于性能调优的工具评测,tips,news等等.

 

其他

过程中看了江南白衣的两篇blog, 知道了原来"声明期短的,小的,immutable对象"对GC更友好的原因等等.

很好, 链接如下:

JDK5.0垃圾收集优化之--Don't Pause

编写对GC友好,又不泄漏的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值