如何在 Mac 上卸载 Eclipse Memory Analyzer
Eclipse Memory Analyzer(MAT)是 Eclipse 基金会做的 Java 堆分析工具,来自 eclipse.dev/mat。Mac 上的应用是独立的 Eclipse RCP 程序,按下载页的说法需要 Java 21 才能运行。它不保存你的堆转储文件,删之前值得看看的是你分析过的转储文件旁边:按项目的帮助文档,MAT 会为每个转储文件写索引文件,运行报告时还会在转储文件旁生成类似 _Leak_Suspects.zip 的报告,应用删掉之后它们都还在。这份指南覆盖官方 Apple 芯片磁盘映像和 Homebrew cask memoryanalyzer。
退出并移除应用
- 在 MAT 里打开「Heap Dump History」视图,对不再需要的转储文件执行 Delete Index Files,项目帮助里说这会删掉索引文件,下次重新打开时转储文件会被重新解析。这样能省磁盘空间,可做可不做,它不会删掉堆转储文件本身。
- 按 Command + Q 退出 MAT。
- 打开访达,进入「应用程序」,把 MemoryAnalyzer 拖进废纸篓。
测试里应用没有启动起来,也没有出现登录项或启动代理。
数据在哪里
在访达按 Shift + Command + G 逐项打开,不存在的路径跳过即可。
| 位置 | 内容 | 处理建议 |
|---|---|---|
| 你打开过的堆转储文件所在的文件夹 | 你的转储文件,以及 MAT 写在旁边的索引文件和报告 | 转储文件保留。用不上的索引文件可以删,想继续看的报告留着。Mole 不会看这里。 |
~/Library/Preferences/org.eclipse.mat.ui.rcp.MemoryAnalyzer.plist |
MAT 的偏好设置,cask 的 zap 清单里有它,测试里它并不存在 | 存在的话移除。 |
测试里 Mole 除了应用没有列出别的行,但应用根本没有跑起来,所以这张表看不出用过的副本会留下什么。
检查结果
pgrep -il memoryanalyzer
ls -d /Applications/MemoryAnalyzer.app ~/Library/Preferences/org.eclipse.mat.ui.rcp.MemoryAnalyzer.plist
find ~/Downloads -maxdepth 2 -name '*.index'
pgrep没有输出,说明 MAT 没在跑。打印出一行就是还活着的进程,退出它。ls -d提示「No such file or directory」说明那个路径已经没了,打印出路径说明还在盘上。find这一行在「下载」文件夹里往下找两层,把文件夹换成你放转储文件的地方。打印出的每个文件都是转储文件旁的索引文件,可以删掉,没有输出说明那里没有剩下的。
用 Homebrew 安装时
brew uninstall --cask memoryanalyzer
这个 cask 没有 uninstall 步骤,所以这条命令只移除应用。它的 zap 清单只有一个文件,~/Library/Preferences/org.eclipse.mat.ui.rcp.MemoryAnalyzer.plist,所以你自己运行 brew uninstall --cask --zap memoryanalyzer 只会删掉这个偏好设置文件,也不读取 Mole 的勾选,不会碰你的转储文件、索引文件和报告。Mole 只在整个移除范围都通过它的 zap 检查时才加 --zap,否则由 Mole 自己移除你勾选的行。这次没有测 Homebrew 安装。
Mole 会列出什么
测试里 Mole 只列出了应用,没有别的行,所以没有可勾选或要审查的东西。你的 Mac 上如果 MAT 写过偏好设置文件,Mole 找到时会列出它。Mole 不会去找堆转储文件、索引文件和报告,也从不列出它们。
这次检查覆盖了什么
2026 年 11 月 9 日,这次检查从 Eclipse 下载站下载了 Eclipse Memory Analyzer 1.17.0 Apple 芯片版,校验和与 Homebrew cask 一致,把应用拷进「应用程序」,没有运行 brew install。打开之后 25 秒内没有出现运行中的应用,原因没有去查,所以 MAT 没有写过任何用户数据,状态页也没有采样。随后用源码构建的 Mole 勾上所有审查行卸载,Mole 把应用(约 114 MB)移进了废纸篓,没有留下能归到 MAT 名下的东西。Mole 没有找到这个应用的更新源。打开堆转储文件、索引文件、报告、由 Homebrew 管理的卸载和 Mole 公证发布版都没有测。
