GC算法
GC常用的算法有四个:
- 复制算法
- 引用计数法
- 标记清除法
- 标记压缩法
1.复制算法:
主要用的复制算法是在新生区(伊甸园、幸存0区、幸存1区)
每次GC都会将伊甸园区活的对象移到幸存区中;一旦伊甸园区被GC之后就会是空的。
幸存区中哪个区为空,另外一个区就会把活得对象转移进去。
默认当一个对象经历15次GC之后就会进入老年区。
2.引用计数法
会将对象做标记,如用用到了就会计数。然后计数为0就会被清除。
3.标记清除法
第一次扫描这些对象,用到了就经行标记。第二次扫描对没有标记的对象进行清除。
4.标记压缩法
先进行多次的标记清除,然后对其进行压缩。
总结
内存效率:复制算法>标记清除算法>标记压缩算法
内存整齐度:复制算法=标记压缩算法>标记清除算法
内存利用率:标记压缩算法=标记清除算法>复制算法
GC:分代收集算法
新生代
- 存活率低
- 复制算法
老年代
- 区域大
- 标记清除(内存碎片不是太多) + 标记压缩混合 实现
浙公网安备 33010602011771号