Intellij Idea - 性能分析



性能分析器提供有关应用程序的信息,例如其CPU、内存和堆使用情况。它还提供有关应用程序线程的详细信息。本章讨论了使用VisualVM工具进行Java应用程序性能分析的方法。它可以分析CPU和堆等实体。

建议本教程的读者熟悉应用程序性能分析器的概念。

简介

VisualVM是一个可视化工具,它集成了JDK工具,并为您提供了强大的性能分析功能。它允许您生成和分析堆数据,追踪内存泄漏,监控垃圾收集器,并执行内存和CPU性能分析。

优势

  • 用于在JVM上运行的本地和远程Java应用程序的可视化界面。

  • 监控应用程序的内存使用情况和应用程序的运行时行为。

  • 监控应用程序线程

  • 分析分配给不同应用程序的内存。

  • 线程转储 - 在死锁和竞争条件下非常方便。

  • 堆转储 - 在分析堆内存分配时非常方便。

配置

在本节中,我们将学习配置VisualVM执行的步骤,步骤如下:

  • 从此处下载 这里

  • 解压zip文件。

  • 导航到etc/visualvm.conf文件,并在该文件中添加以下行:

visualvm_jdkhome=<path of JDK>
  • 如果您的JDK安装在C:\Program Files\Java\jdk-9.0.1目录中,则它应该如下所示:

visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"

监控应用程序

现在让我们看看如何监控应用程序。请考虑以下步骤来了解相同的内容:

  • 双击visualvm.exe文件。
  • 从左窗格中选择应用程序。
  • 选择监控选项卡。
Monitoring Application

您将被定向到一个窗口,您将在其中获得有关CPU、堆、类和线程的详细信息。为了具体了解使用情况,请将鼠标悬停在任何图表上。我们可以在上面的截图中看到堆的使用情况。

有关线程的见解

Java应用程序可以包含多个执行线程。要了解更多关于线程的信息,请选择特定应用程序的“线程”选项卡。它将提供有关线程的各种统计信息,例如活动线程和守护线程的数量。不同的线程状态包括运行、睡眠、等待、暂停和监视器。

Insights Threads

应用程序采样

VisualVM支持CPU、内存采样和内存泄漏检测。要对应用程序进行采样,请选择应用程序并选择采样选项卡:

CPU采样

对于CPU采样,请单击CPU按钮,如下面的屏幕截图所示:

Memory Sampling

内存分析

对于内存分析,请单击内存按钮,如下面的屏幕截图所示:

Memory profiling

内存泄漏

当应用程序运行时,缓慢地用程序不会自动删除的对象填充堆时,就会发生内存泄漏。

如果程序不使用的对象未被删除,则它将保留在内存中,并且GC无法回收其空间。如果应用程序中的字节数和实例数不断且显着地增加到使用所有空间的程度,这可能表明存在内存泄漏。

性能分析应用程序

在本节中,我们将学习如何分析应用程序。要分析应用程序,请从左窗格中选择应用程序,然后单击“性能分析”选项卡:

CPU性能分析

要执行CPU性能分析,请单击CPU按钮,如下面的屏幕截图所示:

CPU Profiling

内存分析

要执行CPU性能分析,请单击CPU按钮,如下面的屏幕截图所示:

CPU Memory Profiling
广告
© . All rights reserved.