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 @   SnailsH  阅读(1995)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示