抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在我们安装的JDK中,提供了一个很棒的JVM调优工具,也就是 Java VisualVM,通过它我们能够看到很多关于我们Java程序的信息。当然借助插件可以实现更为强大的调测功能,比如使用VisualGC查看 Eden,Survivor From, Survivor To区的空间使用情况,以及排查程序中那些对象造成OOM。

VisualVM位置

我们可以通过找到安装JDK的目录

D:\Java\jdk1.8\bin

或者使用cmd命令来打开图形化界面

jvisualvm

启动完成后,会有这样一个界面

安装插件

下载插件

首先我们需要到Visual的 插件官网 下载,我们需要找到自己的JDK版本

这里提供多种插件选择

VIsualGC插件,是能够让我们通过图形化的页面,来查看我们的堆内存,以及各区使用情况

MBeans浏览器插件提供的功能类似于JConsole中的MBeans浏览器:显示应用程序的MBean,显示值,操作和通知。在VisualVM中,浏览器得到了进一步的改进,以提供更好的可用性并支持最新的JMX功能。

下载Github超时可以使用该工具,https://gh-proxy.tenma.work/

下载完成后,我们把插件放在下面目录下

C:\Users\<用户>\AppData\Roaming\VisualVM\8u131

安装

然后在到我们刚刚打开的Visual VM图形化页面,点击工具 -> 插件

然后在点击已下载 -> 添加插件,找到文件,然后选择安装

效果

检测

安装成功后,我们通过写一个代码来进行检测


/**
 * OOM测试
 *
 */
public class OOMTest {
    public static void main(String[] args) throws InterruptedException {
        List<Integer> list = new ArrayList<>();
        while(true) {
            Thread.sleep(10);
            list.add(2140008000);
        }
    }
}

配置启动的JVM参数

-Xms100m  -Xmx100m

最后点击Visual GC查看我们的堆内存情况

等待一会后,我们发现S1区中,有了对象,说明JVM已经进行了第一次新生代GC

第二次,S0区中存在对象

多次GC

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

CDN BY jsDelivr | Powered BY Hexo & Volantis

载入天数…载入时分秒…

访问量为 访客数为

及时当勉励,岁月不待人

萌ICP备20238828号