那個小白一直問我GC垃圾回收日誌,我一怒之下把這篇文章仍給了他

日誌的重要性,不須要過多強調了。經過日誌,咱們能夠發現程序可能有內存(泄露)問題。本文從案例出發,具體介紹這些日誌信息,以期幫助你們更好地瞭解垃圾回收的運行狀況。spa

仍是先上圖,看看本文的主要內容:3d

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

咱們先來看個案例,代碼以下:日誌

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

啓動參數設置:blog

XX:+PrintGCDetails內存

運行main方法,輸出io

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

關於GC日誌的參數class

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

參數案例

 

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

參數解釋:垃圾回收

-XX:+PrintGCDetails 啓用日誌程序

-XX:-UseAdaptiveSizePolicy 禁用動態調整,使SurvivorRatio能夠起做用方法

-XX:SurvivorRatio=8設置Eden:Survivior=8:1

-XX:NewSize=10M -XX:MaxNewSize=10M設置整個新生代的大小爲10M

寫了一個Spring Boot項目,很是簡單的項目,裏面寫了一個controller

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

這段代碼實際上是想後面演示OOM用的,都行吧,這裏先用他來看看GC垃圾回收日誌。

在IDEA中設置

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

輸出結果

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

抓出一段來聊聊

 

GC (minor )日誌

 

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

(Allocation Failure):代表本次引發GC的緣由是由於在年輕代中沒有足夠的空間可以存儲新的數據了。

PSYoungGen:表示是GC類型

8525KYoungGC前新生代內存佔用

352KYoungGC新生代內存佔用

9216K:新生代總共大小

98695K:YoungGC前JVM內存佔用

98486K:YoungGC後JVM內存使用

130048K:JVM堆總大小

0.0092873 secsYoungGC耗時

user=0.00YoungGC用戶耗時

sys=0.00YoungGC系統耗時

real=0.01:YoungGC實際耗時(這裏竟然四捨五入了)

 

Full GC 日誌

 

看了這篇,我肯定你已經完全搞定GC垃圾回收日誌

 

PSYoungGen: 8051K->7817K(9216K):新生代區GC先後和總大小

ParOldGen: 244969K->244969K(245760K):老年代GC先後和大小。

253020K->252786K(254976K):堆GC先後內存佔用狀況。

Metaspace: 29386K->29386K(1077248K):元空間GC先後和總大小

後面那幾項和上面同樣

GC垃圾回收日誌就是這麼簡單麼~藍(nan)不藍(nan)?

相關文章
相關標籤/搜索