目錄如下:前言第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 這兩行日志和這個bug無關(guān),日志表示使用內(nèi)存映射來支持color pointer(也就是多視圖地址映射)。有一個參數(shù)ZPath可以控制
<新一代垃圾回收器ZGC設(shè)計與實現(xiàn)>一書中第六章和第七章分別介紹了每一行日志的含義,以及ZGC中所以支持的參數(shù)
ZGC源碼分析(6)- 日志分析根據(jù)ZGC運行的情況,截取部分關(guān)鍵的日志信息。分析如下: ZGC初始化信息 這一部分主要是ZGC初始化的狀態(tài)。從日志我們看出JVM的版本,是否支持NUMA,大爺內(nèi)存等。還有C...
@Pramyness 這個問題比較復(fù)雜。最簡單的回答,ZGC再對象標記的時候,區(qū)分一般的對象和實現(xiàn)了finalize的對象。使用了2個bits來標記對象是強引用到達,還是非強引用到達。利用2個位可以做到:判斷對象是否需要回收,對象在標記過程中該如何處理。
復(fù)雜的回答,涉及到finalizer的注冊,引用的發(fā)現(xiàn),引用的處理和引用的再激活動作(即引用在垃圾回收如何處理的整個過程),這一部分我正在寫,回頭可以貼一部分內(nèi)容出來。
ZGC源碼分析(4)-GC回收的10個步驟前面我們提到過GC的啟動時機。這一節(jié)中主要介紹GC的步驟。一個GC周期被分成10個小步驟,分別為: 初始標記,該步驟從Root set出發(fā)找出活躍對象,并入棧;還不需要SWT...
@Pramyness 我不知道你說的引用標記位指的是哪一塊內(nèi)容。主要是引用這個詞在JVM中需要根據(jù)上下文理解。不知道你是想了解zgc如何使用color pointer處理并發(fā)?還是想了解垃圾回收過程中的標記階段zgc如何使用位圖記錄對象的活躍情況(這里涉及到finalize的處理,所以標記位有特殊處理)?
ZGC源碼分析(4)-GC回收的10個步驟前面我們提到過GC的啟動時機。這一節(jié)中主要介紹GC的步驟。一個GC周期被分成10個小步驟,分別為: 初始標記,該步驟從Root set出發(fā)找出活躍對象,并入棧;還不需要SWT...
@Pramyness 其實這里有幾個問題。就是為什么有3步需要STW?都解決的是什么問題,能不能優(yōu)化?文章并沒有指出,我正在寫一本關(guān)于ZGC設(shè)計和實現(xiàn)的書,里面有一章會對整個過程做詳細的解釋。
ZGC源碼分析(4)-GC回收的10個步驟前面我們提到過GC的啟動時機。這一節(jié)中主要介紹GC的步驟。一個GC周期被分成10個小步驟,分別為: 初始標記,該步驟從Root set出發(fā)找出活躍對象,并入棧;還不需要SWT...
@Pramyness 不好意思,打錯了。是“該步需要STW”
ZGC源碼分析(4)-GC回收的10個步驟前面我們提到過GC的啟動時機。這一節(jié)中主要介紹GC的步驟。一個GC周期被分成10個小步驟,分別為: 初始標記,該步驟從Root set出發(fā)找出活躍對象,并入棧;還不需要SWT...
根據(jù)ZGC運行的情況,截取部分關(guān)鍵的日志信息。分析如下: ZGC初始化信息 這一部分主要是ZGC初始化的狀態(tài)。從日志我們看出JVM的版本,是否支持NUMA,大爺內(nèi)存等。還有C...
ZGC的目標是希望更短的聽段停頓時間,同時希望對應(yīng)用程序的影響盡量小。所以一定會控制GC并行線程數(shù)和并發(fā)線程數(shù)。并行線程指的是暫停應(yīng)用執(zhí)行初始標記,最終標記和初始轉(zhuǎn)移時候的工...
前面我們提到過GC的啟動時機。這一節(jié)中主要介紹GC的步驟。一個GC周期被分成10個小步驟,分別為: 初始標記,該步驟從Root set出發(fā)找出活躍對象,并入棧;還不需要SWT...
ZGC為了支持TB級內(nèi)存,設(shè)計了分頁管理(類似于G1的分區(qū));為了能夠快速的進行并發(fā)標記和并發(fā)移動,對內(nèi)存空間重新進行了劃分,這就是Color Pointers,同時設(shè)計了物...
ZGC以被動回收為主,即由后臺線程控制何時啟動垃圾回收。 ZGC的觸發(fā)時機在 jdk11/src/hotspot/share/gc/z/zDirector.cpp ZDire...
最新的JDK 11在2018年9月25號正式發(fā)布,這這一版本中有不少新的特性,但是最令人關(guān)注的是JDK 11中的新款的垃圾回收器ZGC雖然它被明確地標記為實驗性質(zhì)(意味著還不...