Intellij Idea - 分析
分析器提供有关应用程序的见解,例如其 CPU、内存和堆使用情况。它还提供有关应用程序线程的详细信息。本章讨论了 VisualVM 工具对 Java 应用程序分析的用法。它可以分析 CPU 和堆等实体。
建议本教程的读者熟悉应用程序分析器概念。
简介
VisualVM 是一个集成 JDK 工具并为您提供强大分析功能的可视化工具。它允许您生成和分析堆数据、跟踪内存泄漏、监视垃圾收集器并执行内存和 CPU 分析。
好处
在 JVM 上运行的本地和远程 Java 应用程序的可视化界面。
监视应用程序的内存使用情况和应用程序的运行时行为。
监视应用程序线程
分析不同应用程序的内存分配。
线程转储 − 在出现死锁和竞争条件时非常方便。
堆转储 − 在分析堆内存分配时非常方便。
配置
在本节中,我们将学习配置 VisualVM 的步骤。步骤如下 −
从此处下载。
解压 zip 文件。
导航到 etc/visualvm.conf 文件并在该文件中添加以下行 −
visualvm_jdkhome=<JDK 路径>
如果您的 JDK 安装在 C:\Program Files\Java\jdk-9.0.1 目录中,那么它应该看起来像这样 −
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
监控应用程序
现在让我们看看如何监控应用程序。考虑以下步骤以了解相同的 −
- 双击 visualvm.exe 文件。
- 从左侧窗格中选择应用程序。
- 选择监视器选项卡。
您将被引导到一个窗口,您将在其中获得有关 CPU、堆、类和线程的详细信息。要具体了解使用情况,请将鼠标悬停在任何图表上。我们可以在上面的屏幕截图中看到堆的使用情况。
关于线程的见解
Java 应用程序可以包含多个执行线程。要了解有关线程的更多信息,请选择特定应用程序的线程选项卡。它将提供有关线程的各种统计信息,例如活动线程和守护线程的数量。不同的线程状态包括运行、休眠、等待、停放和监控。
采样应用程序
VisualVM 支持 CPU、内存采样和内存泄漏检测。要采样应用程序,请选择应用程序并选择示例选项卡 −
CPU 采样
对于 CPU 采样,请单击 CPU 按钮,如以下屏幕截图所示 −
内存分析
要进行内存分析,请单击"内存"按钮,如以下屏幕截图所示 −
内存泄漏
当应用程序在运行时慢慢地用程序未自动删除的对象填满堆时,就会发生内存泄漏。
如果程序未使用的对象未被删除,则它将保留在内存中,并且 GC 无法回收其空间。如果应用程序中的字节数和实例数在程序中持续大幅增加,直至用尽所有空间,则可能表明存在内存泄漏。
分析应用程序
在本节中,我们将学习如何分析应用程序。要分析应用程序,请从左侧窗格中选择应用程序,然后单击"分析"选项卡 −
CPU 分析
要执行 CPU 分析,请单击 CPU 按钮,如下面的屏幕截图所示 −
内存分析
要执行 CPU 分析,请单击 CPU 按钮,如下面的屏幕截图所示 −