中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么時候觸發GC

發布時間:2020-07-20 22:11:12 來源:網絡 閱讀:1018 作者:愛與夢想 欄目:軟件技術

Young GC----針對年輕代

當Eden區滿了的時候,會觸發Young GC


Full GC----針對整個堆

1. 在發生Young GC的時候,虛擬機會檢測之前每次晉升到老年代的平均大小是否大于年老代的剩余空間,如果大于,則直接進行Full GC;

2. 如果小于,但設置了Handle PromotionFailure,那么也會執行Full GC。promotion failed是在進行Minor GC時,survivor space放不下、對象只能放入老年代,而此時老年代也放不下造成的。

3. 永久代空間不足,會觸發Full GC

4. System.gc()也會觸發Full GC

5. 堆中分配很大的對象

所謂大對象,是指需要大量連續內存空間的java對象,例如很長的數組,此種對象會直接進入老年代,而老年代雖然有很大的剩余空間,但是無法找到足夠大的連續空間來分配給當前對象,此種情況就會觸發JVM進行Full GC。為了解決這個問題,CMS垃圾收集器提供了一個可配置的參數,即-XX:+UseCMSCompactAtFullCollection開關參數,用于在“享受”完Full GC服務之后額外免費贈送一個碎片整理的過程,內存整理的過程無法并發的,空間碎片問題沒有了,但提頓時間不得不變長了,JVM設計者們還提供了另外一個參數 -XX:CMSFullGCsBeforeCompaction,這個參數用于設置在執行多少次不壓縮的Full GC后,跟著來一次帶壓縮的。

6.?CMS GC concurrent mode failure

concurrent mode failure是在執行CMS GC的過程中同時有對象要放入老年代,而此時老年代空間不足造成的(有時候“空間不足”是CMS GC時當前的浮動垃圾過多導致暫時性的空間不足觸發Full GC)


CMS GC----針對年老代

  1. 配置了-XX:CMSInitiatingOccupancyFraction=75和-XX:+UseCMSInitiatingOccupancyOnly,設定CMS在對內存占用率達到75%的時候開始GC

  2. 配置了-XX:+CMSClassUnloadingEnabledCMSInitiatingPermOccupancyFraction=80%,即:Perm Gen的使用達到一定的比率,默認為92%

  3. 配置了-XX:+ExplicitGCInvokesConcurrent,未配置-XX:+DisableExplicitGC的情況下,顯示調用了System.gc()

CMS在并發模式工作的時候是只收集old gen的。但一旦并發模式失敗(發生concurrent mode failure)就有選擇性的會進行全堆收集,也就是退回到full GC。

向AI問一下細節
推薦閱讀:
  1. php gc
  2. java GC筆記

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

买车| 自治县| 蒙山县| 房产| 大英县| 洪雅县| 华容县| 丰顺县| 慈溪市| 图片| 公安县| 文成县| 玉门市| 苏尼特右旗| 扶绥县| 内乡县| 台江县| 伊宁市| 浦东新区| 汶川县| 天镇县| 新乐市| 萝北县| 徐州市| 阿拉善左旗| 沂源县| 贡觉县| 泸水县| 蒙山县| 东阿县| 尚义县| 海原县| 庆云县| 新民市| 呈贡县| 德清县| 子洲县| 云和县| 西昌市| 讷河市| 贺州市|