MAT第一章-MAT指定JDK运行

Memory Analyzer (MAT)

平常在工作中可用遇到IntelliJ IDEA卡顿,或者卡住的情况,大概率可能是内存泄漏(OOM)了,可以先通过JDK自带的工具 jmap 收集 dump 信息,然后通过 MAT 进行堆栈分析,jmap 常用命令如下:

jmap -dump:format=b,file=HeapDump.hprof <pid>  #dump出内存信息,可用内存分析工具分析情况,format=b是转为二进制格式的意思
jmap -dump:live,file=HeapDump.hprof <pid>  #dump出内存信息,可用内存分析工具分析情况,live是仅转储活动对象;如果未指定,则会转储堆中的所有对象。

操作系统:Windows

在解压运行 MAT 最新版本时提示要求更高的 JDK 版本,而我环境变量配置的是 JDK1.8,所以需要运行时指定 JDK 路径

以下是官方文档说明:

Memory Analyzer 1.14 and later needs a Java 17 VM or later VM to run. Memory Analyzer 1.12 and later needs a Java 11 VM or later VM to run. The Memory Analyzer 1.8 to 1.11 needs a Java 1.8 VM or later VM to run (of course, heap dumps from JDK 1.4.2_12 on are supported). If in doubt, provide the runtime VM on the command line:

MemoryAnalyzer.exe -vm path/to/java17/bin

翻译:

Memory Analyzer 1.14 及更高版本需要 Java 17 VM 或更高版本的虚拟机才能运行。Memory Analyzer 1.12 及更高版本需要 Java 11 VM 或更高版本的 VM 才能运行。Memory Analyzer 1.8 至 1.11 需要 Java 1.8 VM 或更高版本的 VM 才能运行(当然,也支持 JDK 1.4.2_12 开始的堆转储)。如有疑问,请在命令行中提供运行时虚拟机:

MemoryAnalyzer.exe -vm path/to/java17/bin

或者,编辑 MemoryAnalyzer.ini,在任何 -vmargs 行之前加入(两行):

-vm
path/to/java8/bin

到此,问题解决🎉🎉🎉

参考

posted @ 2024-01-20 11:39  SnailsH  阅读(1556)  评论(0编辑  收藏  举报