Java GC 基础三——利用工具来监控Java垃圾收集

0. 前言


上一篇文章已经介绍过Hotspot 虚拟机的架构是如何发现垃圾,回收垃圾的,也着重介绍了分代回收的过程:
Java GC 基础二——内存管理及回收算法。本文主要想阐述的问题如下:

    1. 何如利用工具来进行Java程序内存分析?

1. 何如利用工具来监控Java垃圾收集

1.1 VisualVM介绍

VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。

在内存分析上,Java VisualVM的最大好处是可通过安装Visual GC插件来分析GC(Gabage Collection)趋势、内存消耗详细状况。

1.2 VisualVM安装

jdk1.7自带jvisualvm可以对java应用进行监控。其中有个插件visualgc可以查看jvm垃圾回收的具体信息。安装插件的步骤是打开jvisualvm,点击工具->插件,在可用插件列表找到Visual GC进行安装,结果提示无法安装。在浏览器打开链接访问一下,发现java.net网站已经被Oracle关闭了。原来isualvm已经迁移到了github上,地址是https://visualvm.github.io/index.html。

下载安装完毕后,我们打开程序,点击菜单栏 工具->插件->可用插件,安装Visual GC。

Java GC 基础三——利用工具来监控Java垃圾收集_第1张图片
安装Visual GC

安装完成后,会发现多了一个Visual GC选项,如下所示:

Java GC 基础三——利用工具来监控Java垃圾收集_第2张图片
安装完成.png

1.3 VisualVM使用

我使用的和序示例是Java2Demo.jar,Java2Demo.jar是一个jar文件,在JDK里有包含,如果没有也可以去网上下载一个,接下来我们用命令行来运行这个jar文件。
在控制台中输入:
java -Xmx12m -Xms3m -Xmn1m -XX:PermSize=20m -XX:MaxPermSize=20m-XX:+UseSerialGC -jar C:\Users\IBM_ADMIN\Desktop\Java2demo.jar
命令行中的参数含义如下:

Java GC 基础三——利用工具来监控Java垃圾收集_第3张图片
图片.png

被监控的程序运行一段时间后Visual GC显示如下,各个分区的随时间的变化情况可以从图中很清晰的看出来。


Java GC 基础三——利用工具来监控Java垃圾收集_第4张图片
图片.png

你可能感兴趣的:(Java GC 基础三——利用工具来监控Java垃圾收集)