真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

打印GC日志排查問(wèn)題怎么解決

這篇文章將為大家詳細(xì)講解有關(guān)打印GC日志排查問(wèn)題怎么解決,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),陽(yáng)朔企業(yè)網(wǎng)站建設(shè),陽(yáng)朔品牌網(wǎng)站建設(shè),網(wǎng)站定制,陽(yáng)朔網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,陽(yáng)朔網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

在工作當(dāng)中,有時(shí)候我們會(huì)需要打印GC的相關(guān)信息來(lái)定位問(wèn)題。該如何做呢?

先來(lái)看個(gè)示例,

public static void main(String[] args) {
        List list0 = new ArrayList<>();
        long start0 = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            list0.add(i);
        }
        System.out.println("cost: " + (System.currentTimeMillis() - start0));

        List list1 = new ArrayList<>();
        long start1 = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            list1.add(i);
        }
        System.out.println("cost: " + (System.currentTimeMillis() - start1));
    }
 

直接運(yùn)行,結(jié)果如下,

cost: 135
cost: 85
 

你應(yīng)該覺(jué)得奇怪,同樣的往一個(gè)list插入100萬(wàn)條數(shù)據(jù),為啥第一個(gè)耗時(shí)比較久?

這種時(shí)候,有經(jīng)驗(yàn)的工程師應(yīng)該能馬上懷疑是GC的問(wèn)題,我們可以通過(guò)在運(yùn)行時(shí)添加JVM參數(shù)來(lái)打印程序運(yùn)行時(shí)的GC情況。

-XX:+PrintGCDetails
 

如果是使用IDEA來(lái)運(yùn)行,可以在 run configurations 的 VM options添加上面的參數(shù)即可。

再次運(yùn)行,輸出如下,

[GC (Allocation Failure) [PSYoungGen: 1536K->512K(1536K)] 1884K->1234K(262144K), 0.0009030 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 1302K->1017K(2560K)] 2025K->1948K(263168K), 0.0012290 secs] [Times: user=0.01 sys=0.01, real=0.01 secs] 
[GC (Allocation Failure) [PSYoungGen: 2553K->1504K(3072K)] 3484K->3051K(263680K), 0.0017210 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 3040K->2033K(4608K)] 4587K->4228K(265216K), 0.0023170 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 4593K->2560K(5120K)] 8195K->6681K(265728K), 0.0249700 secs] [Times: user=0.31 sys=0.00, real=0.03 secs] 
[GC (Allocation Failure) [PSYoungGen: 5120K->3584K(6656K)] 11352K->11408K(267264K), 0.0241680 secs] [Times: user=0.30 sys=0.01, real=0.03 secs] 
[GC (Allocation Failure) [PSYoungGen: 6656K->3296K(7680K)] 17645K->17909K(268288K), 0.0349010 secs] [Times: user=0.45 sys=0.00, real=0.03 secs] 
[GC (Allocation Failure) [PSYoungGen: 6368K->3328K(10240K)] 25729K->25825K(270848K), 0.0314260 secs] [Times: user=0.40 sys=0.00, real=0.03 secs] 
cost: 137
[GC (Allocation Failure) [PSYoungGen: 8166K->4469K(10240K)] 30663K->30103K(270848K), 0.0285370 secs] [Times: user=0.36 sys=0.01, real=0.03 secs] 
[GC (Allocation Failure) [PSYoungGen: 9166K->3785K(13312K)] 34800K->33427K(273920K), 0.0226780 secs] [Times: user=0.28 sys=0.01, real=0.02 secs] 
[GC (Allocation Failure) [PSYoungGen: 11465K->6142K(13824K)] 41107K->38511K(274432K), 0.0065540 secs] [Times: user=0.08 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 13822K->7837K(19456K)] 46191K->44246K(280064K), 0.0099720 secs] [Times: user=0.11 sys=0.01, real=0.01 secs] 
cost: 79
 

所以你大概明白了,第一次minor gc的次數(shù)比第二次多,所以運(yùn)行時(shí)間比較長(zhǎng)。

那么上面打印出來(lái)的日志,具體是什么意思呢?已經(jīng)有人畫(huà)出了很詳細(xì)的圖,我借來(lái)用下,

打印GC日志排查問(wèn)題怎么解決


 

 

打印GC日志排查問(wèn)題怎么解決


    

了解GC日志的打印方法,并且能看懂GC日志,對(duì)于查找定位問(wèn)題非常有幫助的。

我自己就遇到過(guò)生產(chǎn)上一個(gè)CPU飆到好幾百的情況,打印GC日志發(fā)現(xiàn) JVM 一直在 fullGC,而且每次GC之后內(nèi)存基本沒(méi)有變化,從而定位到應(yīng)用程序可能存在內(nèi)存泄漏的問(wèn)題。


標(biāo)題名稱:打印GC日志排查問(wèn)題怎么解決
URL標(biāo)題:http://weahome.cn/article/pjpjjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部