JVM知識點掃盲系列(1)

每次young gc的時間润脸,和eden空間的大小是正比關系嗎柬脸?

在進入公司之后,這個問題先后被多次問到毙驯,那young gc的時間到底和哪些因素有關呢倒堕?

來看一段代碼,邏輯很簡單爆价,不斷的分配1M的大小涩馆,直到觸發(fā)YGC。

// -Xmx2g -Xms2g -Xmn500m -XX:+PrintGCDetails 
// -XX:+UseConcMarkSweepGC -XX:+PrintHeapAtGC
public class GcCase {

    public static void main(String[] args) {
        for (int i = 0; i < 1000; i++) {
            allocate_1M();
        }
    }

    public static void allocate_1M() {
        byte[] _1M = new byte[1024 * 1000];
    }
}

這里設置了新生代的大小是500m允坚,按照8:1:1的比例魂那,eden的大小應該是400m。我們可以大概梳理一下:
1稠项、每次分配1M涯雅,分配到第400次時,eden被1M的內存塊塞滿了
2展运、為了能夠塞下后面的數據的活逆,只能觸發(fā)一次YGC
3、執(zhí)行YGC之前拗胜,必須等所有的業(yè)務線程全部掛起蔗候,這個點就是所謂的安全點(safepoint),從這一刻開始埂软,JVM是凍結的锈遥,只有虛擬機線程才能執(zhí)行,也是從這一刻開始計時勘畔。

一次YGC過程包括下面幾個步驟所灸,每個步驟的耗時,也就是整個YGC的耗時炫七。

1爬立、找出所有可能存活的對象,一個也不能少万哪,這是標記過程的耗時侠驯。
從GC Roots開始抡秆,遍歷對象,所有能遍歷到的對象都是算是存活對象吟策,打上一個標記琅轧。正常情況下,需要的關心的GC Roots包括下面幾個:類的靜態(tài)引用踊挠、業(yè)務線程進入安全點時乍桂,正在執(zhí)行方法中的引用類型變量(包含參數)、部分老年代的對象(持有引用執(zhí)行新生代對象)效床,還有其它不需要太關注的睹酌,比如VM內部的數據結構。

2剩檀、存活對象被標記出來之后憋沿,需要把這些對象從eden區(qū)或者from區(qū),復制到to區(qū)沪猴,這個復制過程的耗時辐啄,和存活對象的大小數量有很大的關系。這是復制過程的耗時运嗜。

3壶辜、如果開啟了GC日志 -XX:+PrintGCDetails,那么在YGC過程中担租,還會記錄一些數據到日志中砸民,這個日志的寫入過程,也有可能被影響奋救,這段時間也是YGC的耗時岭参。

所以,young gc的時間尝艘,和eden空間的大小是正比關系嗎演侯?
答案是沒有多大關系。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末背亥,一起剝皮案震驚了整個濱河市秒际,隨后出現的幾起案子,更是在濱河造成了極大的恐慌隘梨,老刑警劉巖程癌,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舷嗡,死亡現場離奇詭異轴猎,居然都是意外死亡,警方通過查閱死者的電腦和手機进萄,發(fā)現死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門捻脖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锐峭,“玉大人,你說我怎么就攤上這事可婶⊙伛” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵矛渴,是天一觀的道長椎扬。 經常有香客問我,道長具温,這世上最難降的妖魔是什么蚕涤? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮铣猩,結果婚禮上揖铜,老公的妹妹穿的比我還像新娘。我一直安慰自己达皿,他們只是感情好天吓,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著峦椰,像睡著了一般龄寞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汤功,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天萄焦,我揣著相機與錄音,去河邊找鬼冤竹。 笑死拂封,一個胖子當著我的面吹牛,可吹牛的內容都是我干的鹦蠕。 我是一名探鬼主播冒签,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钟病!你這毒婦竟也來了萧恕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肠阱,失蹤者是張志新(化名)和其女友劉穎票唆,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體屹徘,經...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡走趋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了噪伊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簿煌。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡氮唯,死狀恐怖,靈堂內的尸體忽然破棺而出姨伟,到底是詐尸還是另有隱情惩琉,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布夺荒,位于F島的核電站瞒渠,受9級特大地震影響,放射性物質發(fā)生泄漏技扼。R本人自食惡果不足惜在孝,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淮摔。 院中可真熱鬧私沮,春花似錦、人聲如沸和橙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魔招。三九已至晰搀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間办斑,已是汗流浹背外恕。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乡翅,地道東北人鳞疲。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蠕蚜,于是被迫代替她去往敵國和親尚洽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內容

  • JVM架構 當一個程序啟動之前靶累,它的class會被類裝載器裝入方法區(qū)(Permanent區(qū))腺毫,執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,650評論 0 7
  • jvm原理 Java虛擬機是整個java平臺的基石潮酒,是java技術實現硬件無關和操作系統無關的關鍵環(huán)節(jié),是java...
    AI喬治閱讀 17,229評論 21 486
  • 轉載blog.csdn.net/ning109314/article/details/10411495/ JVM工...
    forever_smile閱讀 5,356評論 1 56
  • 作者:一字馬胡 轉載標志 【2017-11-12】 更新日志 日期更新內容備注 2017-11-12新建文章初版 ...
    beneke閱讀 2,195評論 0 7
  • 百勝系統分享 供應鏈視角 研發(fā)-營銷-供應鏈 生意越來越難做邪蛔,其實是產品同質化急黎,營銷差距縮小 產銷脫節(jié) 供應鏈管理...
    梅利醬閱讀 199評論 0 0