0. 引言

本文主要针对mac m1下安装Jprofiler进行讲解,安装核心步骤同样适用于其他系统

1. 安装

如果使用的是eclipse可以在插件中直接安装MAT,因为我使用的是idea开发,所以选择独立安装MAT工具

1、下载地址:https://www.eclipse.org/mat/downloads.php

选择你需要的版本,这里我选择的mac arm架构版,注意这里最新版1.14需要jdk17+

如果是jdk1.8需要下载其他版本:https://www.eclipse.org/mat/previousReleases.php

这里我选择1.7.0版本,之前尝试了1.8.0,1.8.1版本,安装后页面显示不出来,谨慎选择

2、如果是mac,可能会出现无法打开“mat”,因为它来自身份不明的开发者,其他系统请跳过这步

进入系统偏好设置隐私与安全性,选择仍要打开


选择打开

3、如果安装过程出现如下报错

java.lang.IllegalStateException: The platform metadata area could not be written

进入/mat.app/Contents/MacOS文件夹,执行指令:

./MemoryAnalyzer -data ./dump

4、如果继续出现

The JVM shared library "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib"does not contain the JNI_CreateJavaVM symbol.

这是因为使用的是适配arm版本的jdk——zulu jdk。我们将jdk切换成x86架构的

mac jdk切换

vim ~/.bash_profile


生效环境变量

source /etc/profile ~/.bash_profile

查看效果

5、再次执行./MemoryAnalyzer -data ./dump

当发现出现dump文件夹后,关闭命令窗口

6、重新打开MAT,出现如下界面,说明安装成功

7、这里会发现界面点不动,参考官方的说明:https://www.eclipse.org/forums/index.php/t/1090889/

8、从上图的第一步中下载组件,然后执行指令替换:

mv 下载包路径/swt-4.7.1a-cocoa-macosx-x86_64/swt.jar 你的MAT路径/mat.app/Contents/Eclipse/plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.104.2.v20160212-1350.jar# egmv /Users/wuhanxue/Downloads/swt-4.7.1a-cocoa-macosx-x86_64/swt.jar /Library/software/MAT_1.7.0/mat.app/Contents/Eclipse/plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.104.2.v20160212-1350.jar

9、再次打开MAT发现运行正常,新打开一个dump文件进行分析,也正常运行,安装成功!

推荐阅读

1、JVM:全面理解线上服务器内存溢出(OOM)问题处理方案