Concurrent Mark Sweep 併發標記清除(多線程而且用的標記清除算法),會形成大量的內存碎片,離散的可用空間沒法分配較大的對象算法
不進行預清理多線程
啓動 CMS 回收器,默認線程數(ParallelGCThreads + 3) /4併發
設置併發線程數(併發是收集器和應用程序交替執行,並行是應用程序中止,多個線程一塊兒執行 GC,並行回收器不是併發的是並行的)spa
回收閾值,默認 68(老年代空間只用率達到 68%時,執行一次 CMS 回收,若是 CMS 回收失敗,則虛擬機將啓動老年代串行回收器,致使應用程序中斷)
若是內存增加緩慢,則增大此值,減小老年代回收次數;若是內存增加過快,則下降此值,避免觸發老年代串行回收器線程
CMS 垃圾回收後進行一次碎片整理(單線程)對象
進行多少次 CMS 後,進行一次內存壓縮內存
讓 CMS 能夠回收 Perm 區rem