Intellij Idea - 分析

Profiler提供有关应用程序的见解,例如CPU,内存和堆使用情况.它还
提供有关应用程序线程的详细信息.本章讨论VisualVM
工具在Java应用程序分析中的用法.它可以分析CPU和堆等实体.

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

简介

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

好处

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

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

  • 监视应用程序线程

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

  • 线程转储和减号;在遇到死锁和竞争条件时非常方便.

  • 堆转储和减号;非常方便分析堆内存分配.

配置

在本节中,我们将了解配置VisualVM所执行的步骤.步骤为:

  • 下载zip文件.

  • 解压缩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文件.

  • 从左侧窗格中选择应用程序.

  • 选择监视器选项卡.

监控应用程序

您将被定向到一个窗口,在那里您将获得有关CPU,堆,类的详细信息
和线程.要具体使用,请将鼠标悬停在任何图形上.我们可以在上面的屏幕截图中看到
Heap的使用情况.

关于线程的见解

Java应用程序可以包含多个执行线程.要了解有关线程的更多信息,请在
中选择特定应用程序的"线程"选项卡.它将提供有关
线程的各种统计信息,例如活动线程数和守护程序线程数.不同的线程状态是
Running,Sleeping,Waiting,Park和Monitor.

Insights Threads

采样应用程序

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

CPU采样

对于CPU采样,单击CPU按钮,如图所示.以下截图 :

内存采样

内存分析

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

内存分析

内存泄漏

当应用程序在运行时,使用对象缓慢填满堆时发生内存泄漏程序不会自动删除.

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

分析应用程序

在本节中,我们将学习如何分析应用程序.要分析应用程序,请从左窗格中选择应用程序,然后单击配置文件选项卡 :

CPU分析

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

CPU Profiling

内存分析

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

CPU内存分析