细数G1GC
G1GC相當復雜,一篇文章的話很難說清楚,并且長篇冗雜,難讀。本文旨在將G1GC中的部分點Get到,也很難全面,如果錯誤,請幫忙指正,多謝。
一、G1GC的目的
針對服務器應用(大heap內存、多核)進行垃圾收集,為了同時兼顧吞吐量和停頓時間而生。
二、特點
分區、分代、適用多核大heap內存、高吞吐、低停頓
三、如何實現對吞吐量和停頓時間的兼顧
1、技術手段
1)region劃分
將整個heap劃分為大小相等的region,每個region內的heap內存地址連續。
2)停頓時長預測模型
通過該模型來確定回收哪些region,以滿足用戶指定的可停頓時間。
3)并發全局標記
和應用程序并發執行,標記整個heap中存活對象。
4)Garbage-First
優先回收垃圾最多的region,以獲取最大空間釋放。
5)拷貝壓縮
具體回收時,將Object從一個或多個region拷貝到單個heap region上,并對內存進行壓縮整理。這一過程多線程并行執行,因此可減小停頓時間并提高吞吐量。
2、具體過程
1)region劃分
將整個heap劃分為大小相等的r
總結
- 上一篇: 浅谈什么是web
- 下一篇: 实现NFA到DFA的转化(C语言)