JVM垃圾回收STW(Stop-The-World)代碼演示

上一篇 <<<JVM垃圾回收引用計(jì)數(shù)法和根搜索算法圖解
下一篇 >>>JVM垃圾回收器的發(fā)展歷程及使用場(chǎng)景匯總


Stop the World機(jī)制:在執(zhí)行垃圾收集算法時(shí),為了保證正確性,Java應(yīng)用程序的其他所有除了垃圾收集收集器線程之外的線程都被掛起,它會(huì)導(dǎo)致系統(tǒng)全局的停頓。
注意:市面上所有的垃圾收集器都有Stop-The-World問(wèn)題,開發(fā)中盡量不要調(diào)用 System.gc();

代碼演示

new JaryeThread().start();
// 下列代碼手動(dòng)gc后,對(duì)打印結(jié)果的影響
new Thread(()->{
    ArrayList<byte[]> bytes = new ArrayList<>();
    while(true){
        for(int i=0;i<10;i++){
            bytes.add(new byte[1024*1024*10]);
        }
        if(bytes.size()>20){
            bytes.clear();
            //手動(dòng)觸發(fā)GC
            System.gc();
        }
    }
}).start();

static class JaryeThread extends Thread{
    public long startTime = System.currentTimeMillis();

    @Override
    public void run() {
        while (true) {
            try {
                long end = System.currentTimeMillis() - startTime;
                System.out.println((end / 1000) + "." + (end % 1000));
                Thread.sleep(1000);
            } catch (Exception e) {
            }
        }
    }
}
沒(méi)有垃圾回收的響應(yīng)結(jié)果:
0.0
1.1
2.1
3.1
4.1
……
有垃圾回收的響應(yīng)結(jié)果:
0.0
1.14
2.19
3.29
4.31
5.34
6.39
7.43
8.44
9.60
10.77
11.93
12.105

相關(guān)文章鏈接:
<<<JVM整體內(nèi)存結(jié)構(gòu)的圖解,直觀明了
<<<javap命令查看對(duì)象信息及操作方法在JVM層的實(shí)現(xiàn)原理
<<<javap命令反查匯編指令匯總
<<<ClassLoader類加載器順序Demo測(cè)試與雙親委派源碼解讀
<<<自定義SPI和熱部署技術(shù)破壞類加載器的雙親委派模式
<<<JVM中對(duì)象如何完成空間分配和初始化工作
<<<JVM元空間(方法區(qū))和棧內(nèi)存溢出原因及解決方案
<<<JVM堆內(nèi)存溢出和內(nèi)存泄露問(wèn)題定位和解決
<<<JVM常見(jiàn)死鎖問(wèn)題產(chǎn)生原因和多種診斷方式
<<<服務(wù)器CPU飆升為100%問(wèn)題排查及如何避免
<<<JVM內(nèi)存診斷命令和排查工具匯總
<<<JVM新生代老年代算法匯總圖解
<<<JVM垃圾回收不要手動(dòng)System.gc的真正原因
<<<JVM垃圾回收引用計(jì)數(shù)法和根搜索算法圖解
<<<JVM垃圾回收器的發(fā)展歷程及使用場(chǎng)景匯總
<<<JVM串行并行垃圾回收器的關(guān)注點(diǎn)
<<<一張圖看懂CMS垃圾回收器的底層原理
<<<G1能作為JDK9默認(rèn)垃圾回收器的優(yōu)勢(shì)分析
<<<CMS和G1的漏標(biāo)問(wèn)題解決及三色標(biāo)記算法圖解
<<<GC中新生代進(jìn)入老年代的方式匯總
<<<GC常用日志參數(shù)配置及分析工具說(shuō)明
<<<FullGC、MinorGC、STW等常見(jiàn)問(wèn)題如何解答
<<<JVM性能調(diào)優(yōu)的評(píng)估指標(biāo)及調(diào)優(yōu)示例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容