Eclipse MAT 奇闻

Eclipse MAT 奇闻

时间:2021-4-15 作者:admin

Eclipsemat是一个很好的JVM内存分析工具。以下是一些有效使用它的小窍门。

Eclipse MAT 奇闻

图:月食垫。

1.使用独立版本

Eclipse MAT有两个版本:

  1. 单独行动。
  2. 日食插件。

根据我的个人经验,独立版本似乎比插件版本工作得更好、更快。因此,我强烈建议安装一个独立版本。

2.日食垫-堆大小

如果您正在分析一个大小为2GB的堆转储,那么至少为Eclipsemat分配至少1GB的额外空间。如果您可以分配更多的堆空间,那么越多越好。您可以为Eclipsemat工具分配额外的堆空间,方法是编辑MemoryAnalyzer.ini档案。此文件位于MemoryAnalyzer.exe所在的文件夹中。到MemoryAnalyzer.n我要你加上-Xmx3g在底部。

例子:

-startup 
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326 
-vmargs -Xmx3g

3.启用“保持无法触及的对象”

从报告中,Eclipsemat删除了它认为“无法实现”的对象。由于“不可达”,对象有资格进行垃圾收集,MAT不会在报表中显示它们。Eclipsemat将方法中的局部变量分类为“不可访问的对象”。一旦线程退出该方法,局部变量中的对象将有资格进行垃圾收集。

但是,有几种情况下,线程将进入“BLOCKED“或延长”WAITING,’ ‘TIMED_WAITING“国家。在这种情况下,局部变量将仍然存在于内存中,占据空间。由于Eclipsemat默认设置没有显示不可访问的对象,因此您将无法获得这些对象的可见性。您可以通过以下方式更改Eclipsemat 1.4.0版本中的默认设置:

1.转到Window>Preferences…

2.点击“内存分析器”。

3.选择“保持无法到达的对象”。

4.点击“确定”按钮。

Eclipse MAT 奇闻

图:Eclipsemat 1.4.0,显示了如何启用“保持不可访问的对象”。

4.智能数据设置

默认情况下,Eclipsemat以字节显示数据。很难以字节读取大对象大小并对其进行消化。示例Eclipse MAT打印的对象大小如下:‘193,006,366’如果这些数据可以以KB、MB、GB,即“184.07 MB”显示,则要简单得多。

Eclipse MAT 奇闻

图:Eclipsemat默认选项显示对象大小(以字节为单位)。

Eclipsemat提供了一个选项,可以根据对象的适当大小以KB、MB、GB显示对象大小。可以通过以下步骤启用它:

  1. 转到Window>Preferences…
  2. 单击“内存分析器”。
  3. 在“Bytes Display”部分中,选择‘Smart:如果值为千兆字节或…’
  4. 点击“确定”按钮。
Eclipse MAT 奇闻

图:启用“智能”数据显示的设置。

一旦进行了此设置更改,所有数据将以更可读的KB、MB、GB格式显示,如下图所示。

Eclipse MAT 奇闻

结语

如果你需要小程序开发,可以点链接进行询问福州小程序开发

版权所有:https://www.eraycloud.com 转载请注明出处