Visual VM可视化监视GC回收过程

我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天又学了一招,一直在看关于JVM调优的理论知识,关于GC也听了不少了,可是一直没有形象的概念,Visual VM做到了,非常真实,来一起看看吧。

1、下载Visual VM

很多地方说这个软件是自带的,但是我确实没在JDK的bin里面找到,于是自己去网上下了个2.0版,也不大,分分钟搞定,放到bin目录下,打开来就可以看到这个界面,可以看到Eclipse已经出现了。

在这里插入图片描述

2、安装插件

在这里插入图片描述

1、从主菜单中选择“工具”>“插件”。
2、在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
3、逐步完成插件安装程序。

可以将能选的都选上,都不大,5分钟完事,如上图,我就都安装好了,不过你如果实在觉得麻烦,安装Visual GC就可以了。

运行

package gctest;

import java.util.ArrayList;
import java.util.List;

/**
 * 模拟OOM   Visual VM监视GC 
* @author EP
* @date 2020年5月6日  
* @version 1.0
 */

public class HeapOom {
	byte[] b =  new byte[1024*100];
	

	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		
		List<HeapOom>all = new ArrayList<HeapOom>();
		while (true) {
			all.add(new HeapOom());
			Thread.sleep(10);
		}

	}

}

这里有个模拟HeapOOM的代码,大家可以试试。 程序运行以后,就会自动在VVM界面显示,调到Visual VM界面就可以实时跟踪。

在这里插入图片描述
可以看到Old区的内存占用逐渐升高,最后程序报错,OOM,Old区被清空。
在这里插入图片描述

原创文章 46 获赞 7 访问量 2060

猜你喜欢

转载自blog.csdn.net/EdwardWH/article/details/105961696