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
到此,问题解决🎉🎉🎉
参考
本文来自博客园,作者:SnailsH,转载请注明原文链接:https://www.cnblogs.com/SnailsWalk/p/17976214