0
点赞
收藏
分享

微信扫一扫

JVM内存分析工具及注意事项

腾讯优测 2022-04-16 阅读 40
java

分析工具

jprofiler

官网  收费

Java Profiler - JProfiler

jprofiler 提供了简单易用的UI界面,帮助解决性能问题,确定内存泄漏,解决线程问题。

只有准备好了 优秀的工具,才是足够好。

可以看出,jprofiler 的定位:是一款 简单好用的 内存分析工具。

jprofiler 可以看到实施的内存、GC、CPU、线程的活动状态,UI界面也比较友好。就是 收费

jvisualvm.exe、jconsole.exe

这两是 JDK自带的 内存检测工具。只是 UI界面 不太友好。

jprofiler 可以算是 这两的 升级版本。

MAT Memory Analyzer Tool

下载地址:

Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

分析 JVM dump 文件 最好的工具。他可以 根据 dump文件 ,提示出 可能存在的问题,比如 哪些对象占用过多,并且可以分析出这些过多内存的 引用路径,对于分析问题 非常有帮助

注意事项:

1. jprofiler 实时内存 显示的对象 个数,是包含 存活对象和非存活对象的。 如果对象引用不可达,但是此时 没有发生GC时,也会被统计到对象个数中。

跟 jmap -histo pid 统计的数据一致。

2. jvisualvm.exe 工具自带了一个 dump按钮,如果点击了 Dump按钮,会触发一次GC活动

 

3. MAT Memory Analyzer Tool 分析工具,分析的dump文件,可能是只包含存活对象

就目前知道的 jmap -dump 命令 生成的 dump 文件,是只包含存活对象,即使 不存活的对象没有被GC回收,也不会输出到dump文件

所以,如果JVN内存占用过多,可能是 GC 没有触发,导致 引用不可达的对象 没有及时被回收。如果 用 jprofiler 分析问题的话,需要关注 GC 活动情况

举报

相关推荐

0 条评论