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.
VisualVM支持CPU,内存采样和内存泄漏检测.要对应用程序进行示例,请选择应用程序并选择样本选项卡 :
对于CPU采样,单击CPU按钮,如图所示.以下截图 :
对于内存分析,单击Memory按钮,如以下屏幕截图所示 :
当应用程序在运行时,使用对象缓慢填满堆时发生内存泄漏程序不会自动删除.
如果程序未使用的对象未被删除,则它将保留在内存中并且GC无法回收其空间.如果应用程序中的字节数和实例数在程序中不断增加且显着增加到,占用了所有空间,这可能表示存在内存泄漏.
在本节中,我们将学习如何分析应用程序.要分析应用程序,请从左窗格中选择应用程序,然后单击配置文件选项卡 :
要执行CPU分析,请单击CPU按钮如下面的屏幕截图所示 :
要执行CPU分析,请单击CPU按钮,如下面的屏幕截图所示 :