【MAT】内存分析工具
MAT下载
工具下载
Linux版本: 链接: https://pan.baidu.com/s/1jdYASRmM01zFgh_wxmdEWA?pwd=6aww 提取码: 6aww
MAC 版本: 链接: https://pan.baidu.com/s/1Dzi0frJ0oNessPfbmy-tmw?pwd=q8rm 提取码: q8rm
官方 MAT 下载地址 http://www.eclipse.org/mat/downloads.php
使用
1、可视化的MAT使用
网上去找个来看看算了,
主要还是得看命令行(linux 版本的)
2、Linux版本的 MAT使用
1、下载好工具,上传到服务器,
MemoryAnalyzer-1.14.0.20230315-linux.gtk.x86_64.zip
2、解压
unzip MemoryAnalyzer-1.14.0.20230315-linux.gtk.x86_64.zip
3、修改配置文件 MemoryAnalyzer.ini
为啥要修改这个文件(因为它默认的内存只有1G,是不够用的,很多时候是不够用的。。。如果某个程序运行用了4G,然后它OOM的时候,也是接近4G了,那它导出来的 dump文件,需要去加载它,也至少要4G的存储,否则加载这个 dump文件的时候,就先OOM了。。。)
把它修改大一点!(看实际情况而定)
vim MemoryAnalyzer.ini -startup plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.700.v20221108-1024 -vmargs --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED -Xmx4096m -XX:+UseG1GC
-Xmx 最大堆大小,这里写了4G。
当然也可以写更大(如果服务器内存够的话,比如 -Xmx64G, 哈哈。。。)
修改完后,保存
4、执行命令
也可以保存在脚本:analyze.sh (好像没有啥用,文件每次都不一样。。。不过没关系啦,可以记录一下)
/root/mat/memoryAnalyzer-linux/ParseHeapDump.sh \ /tmp/test/xxx3.bin \ org.eclipse.mat.api:suspects \ org.eclipse.mat.api:overview \ org.eclipse.mat.api:top_components
sh analyze.sh
执行,然后开始
Task: Reopening parsed heap dump file [.........] Subtask: Leak Suspects [ Subtask: System Overview [ Subtask: Test 'Heap Dump Overview' of section 'System Overview' [ Subtask: Test 'System Properties' of section 'System Overview' [ Subtask: Extracting Key Value Pairs... [ Subtask: Extracting Key Value Pairs... java.util.Properties [ Subtask: Test 'Thread Overview' of section 'System Overview' [ Subtask: Searching Threads... [ Subtask: Test 'Top Consumers' of section 'System Overview' [ Subtask: Creating histogram [ Subtask: Grouping by package [ Subtask: Top Consumers [ Subtask: Test 'Biggest Objects (Overview)' of section 'Top Consumers' [ Subtask: Test 'Biggest Objects' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Classes (Overview)' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Classes' of section 'Top Consumers'
也挺快,可能我这个文件比较小,但肯定比可视化的快(可能本地的电脑确实比不上服务器)
然后,当它完成时,就会生成几个压缩文件
文件拿到了,把压缩包下载到本地,用浏览器打开就可以分析了。
关于MAT结果怎样看,,,,emmm,下一篇再记吧
报错:
1、Cannot load from short array because “sun.awt.FontConfiguration.head“ is null
这个原因是: 系统缺少相应的字体。安装相应的字体即可解决。
yum install fontconfig
fc-cache --force
另:
参考文章: https://www.cnblogs.com/hellxz/p/use_mat_linux_command_line_generate_reports.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南