目錄如下:前言第1章垃圾回收器概述 11.1 垃圾回收算法 21.2 JVM垃圾回收器 21.2.1 串行回收 31.2.2 并行回收 41.2.3 CMS 41.2.4 G...

目錄如下:前言第1章垃圾回收器概述 11.1 垃圾回收算法 21.2 JVM垃圾回收器 21.2.1 串行回收 31.2.2 并行回收 41.2.3 CMS 41.2.4 G...
@D_GrayMan 這兩行日志和這個(gè)bug無關(guān),日志表示使用內(nèi)存映射來支持color pointer(也就是多視圖地址映射)。有一個(gè)參數(shù)ZPath可以控制
<新一代垃圾回收器ZGC設(shè)計(jì)與實(shí)現(xiàn)>一書中第六章和第七章分別介紹了每一行日志的含義靴寂,以及ZGC中所以支持的參數(shù)
ZGC源碼分析(6)- 日志分析根據(jù)ZGC運(yùn)行的情況返弹,截取部分關(guān)鍵的日志信息弱判。分析如下: ZGC初始化信息 這一部分主要是ZGC初始化的狀態(tài)慧耍。從日志我們看出JVM的版本履因,是否支持NUMA类咧,大爺內(nèi)存等馒铃。還有C...
@Pramyness 這個(gè)問題比較復(fù)雜。最簡(jiǎn)單的回答痕惋,ZGC再對(duì)象標(biāo)記的時(shí)候区宇,區(qū)分一般的對(duì)象和實(shí)現(xiàn)了finalize的對(duì)象。使用了2個(gè)bits來標(biāo)記對(duì)象是強(qiáng)引用到達(dá)值戳,還是非強(qiáng)引用到達(dá)议谷。利用2個(gè)位可以做到:判斷對(duì)象是否需要回收,對(duì)象在標(biāo)記過程中該如何處理堕虹。
復(fù)雜的回答,涉及到finalizer的注冊(cè)卧晓,引用的發(fā)現(xiàn)芬首,引用的處理和引用的再激活動(dòng)作(即引用在垃圾回收如何處理的整個(gè)過程),這一部分我正在寫逼裆,回頭可以貼一部分內(nèi)容出來郁稍。
ZGC源碼分析(4)-GC回收的10個(gè)步驟前面我們提到過GC的啟動(dòng)時(shí)機(jī)。這一節(jié)中主要介紹GC的步驟胜宇。一個(gè)GC周期被分成10個(gè)小步驟耀怜,分別為: 初始標(biāo)記,該步驟從Root set出發(fā)找出活躍對(duì)象桐愉,并入棧财破;還不需要SWT...
@Pramyness 我不知道你說的引用標(biāo)記位指的是哪一塊內(nèi)容。主要是引用這個(gè)詞在JVM中需要根據(jù)上下文理解仅财。不知道你是想了解zgc如何使用color pointer處理并發(fā)?還是想了解垃圾回收過程中的標(biāo)記階段zgc如何使用位圖記錄對(duì)象的活躍情況(這里涉及到finalize的處理碗淌,所以標(biāo)記位有特殊處理)盏求?
ZGC源碼分析(4)-GC回收的10個(gè)步驟前面我們提到過GC的啟動(dòng)時(shí)機(jī)。這一節(jié)中主要介紹GC的步驟亿眠。一個(gè)GC周期被分成10個(gè)小步驟碎罚,分別為: 初始標(biāo)記,該步驟從Root set出發(fā)找出活躍對(duì)象纳像,并入棧荆烈;還不需要SWT...
@Pramyness 其實(shí)這里有幾個(gè)問題。就是為什么有3步需要STW?都解決的是什么問題竟趾,能不能優(yōu)化憔购?文章并沒有指出,我正在寫一本關(guān)于ZGC設(shè)計(jì)和實(shí)現(xiàn)的書岔帽,里面有一章會(huì)對(duì)整個(gè)過程做詳細(xì)的解釋玫鸟。
ZGC源碼分析(4)-GC回收的10個(gè)步驟前面我們提到過GC的啟動(dòng)時(shí)機(jī)。這一節(jié)中主要介紹GC的步驟犀勒。一個(gè)GC周期被分成10個(gè)小步驟屎飘,分別為: 初始標(biāo)記,該步驟從Root set出發(fā)找出活躍對(duì)象贾费,并入棧钦购;還不需要SWT...
@Pramyness 不好意思,打錯(cuò)了褂萧。是“該步需要STW”
ZGC源碼分析(4)-GC回收的10個(gè)步驟前面我們提到過GC的啟動(dòng)時(shí)機(jī)押桃。這一節(jié)中主要介紹GC的步驟。一個(gè)GC周期被分成10個(gè)小步驟导犹,分別為: 初始標(biāo)記怨规,該步驟從Root set出發(fā)找出活躍對(duì)象陌宿,并入棧;還不需要SWT...
根據(jù)ZGC運(yùn)行的情況波丰,截取部分關(guān)鍵的日志信息壳坪。分析如下: ZGC初始化信息 這一部分主要是ZGC初始化的狀態(tài)。從日志我們看出JVM的版本掰烟,是否支持NUMA爽蝴,大爺內(nèi)存等。還有C...
ZGC的目標(biāo)是希望更短的聽段停頓時(shí)間纫骑,同時(shí)希望對(duì)應(yīng)用程序的影響盡量小蝎亚。所以一定會(huì)控制GC并行線程數(shù)和并發(fā)線程數(shù)。并行線程指的是暫停應(yīng)用執(zhí)行初始標(biāo)記先馆,最終標(biāo)記和初始轉(zhuǎn)移時(shí)候的工...
前面我們提到過GC的啟動(dòng)時(shí)機(jī)发框。這一節(jié)中主要介紹GC的步驟。一個(gè)GC周期被分成10個(gè)小步驟煤墙,分別為: 初始標(biāo)記梅惯,該步驟從Root set出發(fā)找出活躍對(duì)象,并入棧仿野;還不需要SWT...
ZGC為了支持TB級(jí)內(nèi)存铣减,設(shè)計(jì)了分頁(yè)管理(類似于G1的分區(qū));為了能夠快速的進(jìn)行并發(fā)標(biāo)記和并發(fā)移動(dòng)脚作,對(duì)內(nèi)存空間重新進(jìn)行了劃分葫哗,這就是Color Pointers,同時(shí)設(shè)計(jì)了物...
ZGC以被動(dòng)回收為主球涛,即由后臺(tái)線程控制何時(shí)啟動(dòng)垃圾回收劣针。 ZGC的觸發(fā)時(shí)機(jī)在 jdk11/src/hotspot/share/gc/z/zDirector.cpp ZDire...
最新的JDK 11在2018年9月25號(hào)正式發(fā)布,這這一版本中有不少新的特性亿扁,但是最令人關(guān)注的是JDK 11中的新款的垃圾回收器ZGC雖然它被明確地標(biāo)記為實(shí)驗(yàn)性質(zhì)(意味著還不...