Java垃圾收集监控分析工具JavaVisualVMNaaradGCViewerGCAnalyzerJavaVisualVMJavaVisualVM随JavaSESDK安装免费提供。查看你的JavaJDK安装目录下的/bin目录,Javajdk1.8.0bin。此目录中还有许多其他工具,包括javac和java工具,jvisualvm就是其中之一。JavaVisualVM为运行的Java应用程序提供可视化信息显示。它是许多工具的集成包,JConsole、jstat、jinfo、jstack和jmap等工具现在是JavaVisualVM的一部分。JavaVisualVM可用于——生成和分析堆内存转储——观察和操作MBean——监控垃圾回收——内存和CPU性能分析启动VisualVMjvisualvm已经包含在JDK的bin目录下,如果设置环境变量路径,可以直接在命令行中运行jvisualvm,会出现如下启动界面。安装VisualGC插件。我们需要安装visualGC插件,才能获得堆JavaGC线程的美观且有价值的视觉体验。在上面的启动界面点击Tools->Plugins->AvailablePlugins->VisualGC(不知道什么原因,这张图上传不成功,只会附上外部链接地址,sorry)安装。监控GC现在可以监控垃圾回收过程。启动你的Java应用程序,JavaVisualVM会自动检测并显示在界面上。在左侧“应用程序”面板的“本地”节点下,会列出所有本地运行的Java应用程序。JavaVisualVM本身就是一个Java应用,所以自己列出来。出于本文的目的,我们将监控VisualVM应用程序本身的GC进程。双击“本地”节点下的VisualVM图标。这将打开右侧应用程序的监控面板。该面板有几个选项卡,每个选项卡都显示与应用程序性能相关的方面。由于我们现在主要关注“VisualGC”,所以点击它。上图为Old、Eden、S0、S1使用的内存空间。下图显示了为每个部分分配和释放内存的详细信息。它以设定的刷新率不断更新。上图显示了一个正常运行的程序。当发生内存泄漏或不稳定的操作时,从图形本身就很明显。至少我们可以知道程序中存在对象内存分配和垃圾回收相关的问题。然后使用其他选项卡(如“线程”和线程转储)中提供的信息,我们可以缩小问题发生的位置。在“监控”选项卡中,我们可以看到在时间轴中开发的内存使用概览图。有一个调用垃圾收集过程的“执行垃圾收集”按钮。在“Sampler”选项卡中我们可以开始内存和CPU的分析工作。采样器实时显示每个实例的使用情况。它可以帮助准确确定性能问题发生的位置。至此,关于Java垃圾回收的系列文章就告一段落了。
