我是一個從汽車行業轉行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區被清空。