Posts tagged with gc


gc种类分为 1.标记-清除算法 通过标记阶段将所有活动对象做上标记,在清理阶段清除没有标记的死亡对象。 gc() { mark_phase() { for(r : roots) mark(r) }; sweep_phase(); } roots 为用户变量、调用栈、寄存器。 优点: 实现简单 gc时不会移动对象 缺点: 内存碎片化、 分配速度慢(与其他的GC算法<复制、标记-压缩>可分配内存是连续的不同,该算法空闲内存为链表,极端情况可能遍历整个链表)、 与写时复制不兼容(同上一样,…