在前2篇中,我们大致了解了语言的gc,以及gc的基本概念
详解gc(垃圾回收)机制(一)
详解gc(垃圾回收)机制二:认识GC基本概念
gc算法大致分为以下几种:
1:标记-清除
2:引用计数法...3:GC复制
4:GC标记-压缩
5:保守GC
6:分代垃圾回收
7:增量式垃圾回收
8:RC Immix
在第一篇文章,有讲到 标记-清除,引用计数,以及go的特色 三色标记法....GC复制算法
GC复制简单来说,就是获取到空间里的活动对象,将所有活动对象复制到其他框架,再把原来空间的所有对象回收掉....我们把复制活动对象的原空间称为from空间,将粘贴活动对象的新空间称为 to空间
再复制完之后,下一次回收, to空间又变成了from空间,反之from变为了to空间
GC复制算法步骤:
1:设置指针地址为...from空间大小的to空间,那就只能让堆空间进行划分一半一半,使其能够支持gc复制,也就意味着进程只能使用一半的内存
2:不兼容保守式GC
保守式GC是啥我也不知道,等后面可以看看,主要是,GC复制需要移动对象重写指针