前文已经讲过Java内存垃圾的分代回收策略,现在是时候体验下真实应用中垃圾回收的具体过程了。在本文中将阐述如何使用VisualVM运行Java应用程序,并分析其垃圾回收过程。VisualVM程序包含于JDK中,该程序允许开发人员监控所运行JVM的各个方面。
步骤1:JDK安装
首先需要下载并安装JDK和javademos,并配置好环境变量。关于JDK安装的文章和博客很多,这就不再详述安装过程,安装完成后,即可开始相关操作。
步骤2:启动待演示的应用程序
在环境变量配置完善的基础上,运行demo应用中的2D graphics demo,其运行命令如下所示:
java -Xmx12m -Xms3m -Xmn1m -XX:PermSize=20m -XX:MaxPermSize=20m -XX:+UseSerialGC -jar c:\javademos\demo\jfc\Java2D\Java2demo.jar
2D graphics demo的运行效果如下图所示:
此时,可以看到demo中有许多不同的选项卡,每个选项卡都展示不同的Java图形特性。单击其中的“Transforms”选项卡。将会看到一个新的界面,如下图所示:
该demo应用的这一部分将会产生很多可观察到的有趣的垃圾收集行为,保持程序继续运行,一会儿将再次进行讨论。
步骤3:启动VisualVM
启动VisualVM,需要使用jvisualvm命令,第一次运行Visual VM时,将对系统进行校准。校准时会显示如下所示的对话框:
点击OK,校准完成以后,将会显示如下界面:
点击OK,将会加载主要用户界面,如下图所示:
从这里开始,就可以对运行的JVM进行监控,为了对垃圾回收过程进行监控,还需要安装VisualGC插件。
步骤4:安装VisualGC
VisualVM的VisualGC插件为JVM的垃圾收集器提供了一种图形化界面,该插件是自由软件,可以通过如下步骤进行安装:
(1)选择用户界面中的Tools-->Plugins,将会出现如下所示的界面:
(2)选择VisualGC,然后选择Install按钮
(3)插件的安装器开始运行,此时点击Next
(4)阅读并接受许可协议,点击Install,该插件将会被安装完成
(5)最后点击Finish来完成安装
image.png
步骤5:分析Java2Demo
右键点击Local应用中的Java2Demo,并选择Open
此时应用程序被加载到VisualVM中。需要注意,此时界面右侧加载了许多选项卡,单击选择VisualGC选项卡
Visual GC选项卡将显示垃圾收集器中正在进行的所有活动。此时可以看到Eden空间被填满,数据在两个存活空间S1和S0之间移动。此外,垃圾收集器相关的图表和统计数据会显示在右侧
此时也可以尝试点击其他选项卡,以查看JVM的相关信息。此外,还可以尝试更改示例应用程序中显示的字符串或图像的数量,以了解这些更改是如何影响垃圾收集过程的。
网友评论