监视和分析java程序性能

监视和分析java程序性能

jconsole

在有内在泄露时,被回收的对象首先逐渐装满幸存者空间(Survivor Space),然后再装满终身对象空间(Tenured Generation).当这些更大的空间被装满时,应用程序的运行速度将变慢,因为将经常进行缓慢的全面垃圾收集操作。过多的垃圾收集活动也是内在泄露或Java虚拟机配置不当的典型标志。

Jconsole是检测内存泄露的极好工具。

如果泄露不容易发现,可用JMeter激发。

查看、识别出被泄露的类和对象工具

jmap 粗略地查看运行的应用程序的堆。

jmap -histo XXXX(PID)

这将列出每个类的对象实例数及这些实例所占用的总体内存空间大小,按空间大小排序。

获取运行中的Java应用程序的堆转储:

jmap -dump:file=dump.bin XXXX(PID)

另可用: -XX:+HeapDumpOnOutOfMemoryError启动应用程序,它将使虚拟机生成堆转储。

jhat分析二进制堆转储,并在本地端口启动一个web服务器,以供用户对堆转储进行交互分析和查询。

jhat -J-Xmx384m dump.bin


猜你喜欢

转载自sunxboy.iteye.com/blog/1174704