JVM总结5-JVM调优工具使用总结

原文链接: https://my.oschina.net/u/3145136/blog/856089

   常用的JVM调优工具有: Jconsole,jProfile,VisualVM

    Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里

    JProfiler:商业软件,需要付费。功能强大。详细说明参考这里

    VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。

堆信息查看

    根据堆信息,我们一般可以顺利解决以下问题:

      --年老代年轻代大小划分是否合理

      --内存泄漏

     --垃圾回收算法设置是否合理

    下面介绍JVM工具查看堆信息的功能。

1.1 功能一

(1)可查看堆空间大小分配(年轻代、年老代、持久代分配)

(2)提供即时的垃圾回收功能

(3)垃圾监控(长时间监控回收情况)

JVM总结5-JVM调优工具使用总结_第1张图片

1.2 功能二

查看堆内类、对象信息查看:数量、类型等

JVM总结5-JVM调优工具使用总结_第2张图片

1.3 功能三

对象引用情况查看

JVM总结5-JVM调优工具使用总结_第3张图片

线程监控

2.1 功能1

(1)线程信息监控:系统线程数量。

(2)线程状态监控:各个线程都处在什么样的状态下

JVM总结5-JVM调优工具使用总结_第4张图片

2.2 功能二

(1)Dump线程详细信息:查看线程内部运行情况

(2)死锁检查

JVM总结5-JVM调优工具使用总结_第5张图片

热点分析

    CPU热点:检查系统哪些方法占用的大量CPU时间

    内存热点:检查哪些对象在系统中数量最大(一定时间内存活对象和销毁对象一起统计)

    这两个东西对于系统优化很有帮助。我们可以根据找到的热点,有针对性的进行系统的瓶颈查找和进行系统优化,而不是漫无目的的进行所有代码的优化。

JVM总结5-JVM调优工具使用总结_第6张图片

4 快照

    快照是系统运行到某一时刻的一个定格。在我们进行调优的时候,不可能用眼睛去跟踪所有系统变化,依赖快照功能,我们就可以进行系统两个不同运行时刻,对象(或类、线程等)的不同,以便快速找到问题

    举例说,我要检查系统进行垃圾回收以后,是否还有该收回的对象被遗漏下来的了。那么,我可以在进行垃圾回收前后,分别进行一次堆情况的快照,然后对比两次快照的对象情况。

参考资料:http://pengjiaheng.iteye.com/blog/552456

转载于:https://my.oschina.net/u/3145136/blog/856089

你可能感兴趣的:(JVM总结5-JVM调优工具使用总结)