JVM六大垃圾回收器特点及区别
1、Serial:
標記整理算法。
單線程,適合單CPU,效率高,STW。
Old:
單線程回收老年代,CMS 發(fā)生Concurrent Mode Failure的備選方案。
2、Parallel:
New:
Serial多線程版。
默認使用線程數(shù)和CPU個數(shù)相同,
可通過+UseParallelGCThreads控制。
Scavange:
注重吞吐量,可設置垃圾回收時間和其占比。
-XX:+UseAdaptiveSizePolicy自適應堆中各區(qū)占比。
Old:
標記整理算法。
Scavenge老年代版本,Parallel Scavenge+Parallel Old可實現(xiàn)高吞吐量。
3、CMS
標記清除算法。
力求回收時間最短。
標記:
初始——>并發(fā)——>置新
初始、置新還是會STW,時間較短。
并發(fā),和其他線程一起運行,默認使用(當前CPU個數(shù)+3)/4線程,比Parallel并發(fā)標記快很多。
缺點:
對CPU敏感,最好4個以上。
回收中還會產(chǎn)生垃圾。
產(chǎn)生空間碎片。
?
可以設置Full GC后,磁盤碎片整理。
然而,碎片整理時,不能并發(fā)回收。可以設置碎片整理的次數(shù)。^_^,打補丁。
ps:
STW——>Stop The Word。
轉(zhuǎn)載于:https://www.cnblogs.com/codegod/p/9061059.html
總結(jié)
以上是生活随笔為你收集整理的JVM六大垃圾回收器特点及区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 注册为 widows 服务
- 下一篇: 两个排序数组的中位数