日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最详细G1垃圾回收器日志解读

發布時間:2024/3/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最详细G1垃圾回收器日志解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,開啟gc日志。-XX:+PrintGCDetails

疏散階段

疏散階段,主要是將內存中的數據從一些分區復制到其他分區

0.522: [GC pause (young), 0.15877971 secs] # 這次疏散只涉及年輕代,總耗時 0.15877971.如果是混合gc則可能是 [GC pause (mixed), 0.32714353 secs][Parallel Time: 157.1 ms] # 并行疏散,總耗時 157.1 ms[GC Worker Start (ms): 522.1 522.2 522.2 522.2 # 每個疏散線程的開始時間Avg: 522.2, Min: 522.1, Max: 522.2, Diff: 0.1] # 最大時間,最小時間[Ext Root Scanning (ms): 1.6 1.5 1.6 1.9 # 每個線程掃描根分區的時間Avg: 1.7, Min: 1.5, Max: 1.9, Diff: 0.4][Update RS (ms): 38.7 38.8 50.6 37.3 #更新RS的耗時,線程會把對當前分區引用的變更記錄在buffer里,這里就是處理這些bufferAvg: 41.3, Min: 37.3, Max: 50.6, Diff: 13.3][Processed Buffers : 2 2 3 2 # 處理緩沖區的數量Sum: 9, Avg: 2, Min: 2, Max: 3, Diff: 1][Scan RS (ms): 9.9 9.7 0.0 9.7 # 掃描RSAvg: 7.3, Min: 0.0, Max: 9.9, Diff: 9.9][Object Copy (ms): 106.7 106.8 104.6 107.9 # 每個線程復制到CS的內容其他分區Avg: 106.5, Min: 104.6, Max: 107.9, Diff: 3.3][Termination (ms): 0.0 0.0 0.0 0.0Avg: 0.0, Min: 0.0, Max: 0.0, Diff: 0.0][Termination Attempts : 1 4 4 6Sum: 15, Avg: 3, Min: 1, Max: 6, Diff: 5][GC Worker End (ms): 679.1 679.1 679.1 679.1 # 每個gc線程的結束時間Avg: 679.1, Min: 679.1, Max: 679.1, Diff: 0.1][GC Worker (ms): 156.9 157.0 156.9 156.9 # 每個gc worker的總耗時Avg: 156.9, Min: 156.9, Max: 157.0, Diff: 0.1][GC Worker Other (ms): 0.3 0.3 0.3 0.3 Avg: 0.3, Min: 0.3, Max: 0.3, Diff: 0.0][Clear CT: 0.1 ms] # 清理卡表[Other: 1.5 ms][Choose CSet: 0.0 ms][Ref Proc: 0.3 ms][Ref Enq: 0.0 ms][Free CSet: 0.3 ms][Eden: 12M(12M)->0B(10M) Survivors: 0B->2048K Heap: 13M(64M)->9739K(64M)] # 各個分代的內存變更。eden的容量從12M到10M,內存占用從12M到0.survivors的內存占用從0 到 2048k.堆內存容量從64M到64M,內存占用從13M到9739K[Times: user=0.59 sys=0.02, real=0.16 secs] # 總耗時0.16秒

標記階段

1.416: [GC pause (young) (initial-mark), 0.62417980 secs] # 標記周期的第一階段是初始標記,標記從根直接可訪問的對象 2.042: [GC concurrent-root-region-scan-start] # 標志根分區,也就是初始標記的對象所在的區域。可以從初始標記的結果中直接獲得 2.067: [GC concurrent-root-region-scan-end, 0.0251507] # 根分區標記的結束及耗時。結束發送在下一次yong gc之前,因為下一次gc會改變初始標記的對象所在的分區 2.068: [GC concurrent-mark-start] # 并發標記,并發創建每個分區的卡表,標記外部分區對當前區域某個卡片的引用。 3.198: [GC concurrent-mark-reset-for-overflow] # 這表明全局標記堆棧已滿,并且堆棧溢出。并發標記檢測到此溢出,必須重置數據結構以再次開始標記。 4.053: [GC concurrent-mark-end, 1.9849672 sec] # 并發標記的結束,耗時 4.055: [GC remark 4.055: [GC ref-proc, 0.0000254 secs], 0.0030184 secs] # 重新標記。STW,在并發標記階段產生的變更會被寫屏障記錄下來。這里就是標記這部分對象,速度很快[Times: user=0.00 sys=0.00, real=0.00 secs] # 標記階段結束 4.088: [GC cleanup 117M->106M(138M), 0.0015198 secs][Times: user=0.00 sys=0.00, real=0.00 secs] # 回收資源階段,將空閑的分區收集好,非空閑的區域按回收代價排序。堆內存 138M, 回收前 117M,回收后106M. 4.090: [GC concurrent-cleanup-start] # 并發清理,主要根據停頓目標選擇適當數量的分區收集。 4.091: [GC concurrent-cleanup-end, 0.0002721] # 清理結束,耗時。

總結

以上是生活随笔為你收集整理的最详细G1垃圾回收器日志解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。