我是一个从汽车行业转行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区被清空。