IntelliJ IDEA
 
获取 IntelliJ IDEA

分析内存快照

最后修改时间:2022 年 9 月 19 日

本主题介绍如何在 IntelliJ IDEA 中拍摄快照或打开外部快照后分析快照。

IntelliJ IDEA 打开Profiler工具窗口,其中包含内存快照细分。

Profiler 工具窗口中显示的内存转储文件

快照的左侧部分显示应用程序中的类列表、每个类有多少个活动实例、所有实例的浅层大小和保留大小。

浅层大小:分配用于存储对象本身的内存量。它不包括该对象引用的对象的大小。

保留大小:对象的浅层大小与其保留对象的浅层大小之和(对象仅从此对象引用)。换句话说,保留大小是通过垃圾收集该对象可以回收的内存量。

Profiler 工具窗口的“类”选项卡

快照的右侧部分有几个选项卡,可让您计算和显示以下信息:

  • 最大对象选项卡列出了保留大部分内存的对象,按其保留大小排序。这些对象呈现为支配树根。此选项卡可以帮助您查找由单个对象引起的内存泄漏。

    “最大对象”选项卡上显示的信息
  • GC Roots选项卡显示类列表及其对应的垃圾收集器根对象。此信息是在拍摄快照时无法进行垃圾收集的所有对象的概述。例如,查看哪个类加载器占用应用程序服务器中的大部分内存消耗可能很有用。

    GC Roots 选项卡上显示的信息
  • “合并路径”选项卡显示按类对对象进行分组,并显示保留它们的支配对象的路径。此信息有助于理解为什么保留特定类的实例。

    “合并路径”选项卡上显示的信息
  • 摘要选项卡显示一般信息,例如线程的总大小、实例数和堆栈跟踪。

    Profiler 工具窗口中的“摘要”选项卡
  • “包”选项卡按包显示所有对象的细分。这可以帮助您快速识别哪个子系统造成了大部分内存消耗和可能的内存泄漏。

    Profiler 工具窗口中的“Packages”选项卡