
阅读笔记
Totoro19
这个作者很懒,什么都没留下…
展开
-
(阅读笔记)垃圾回收的算法与实现 - 整体
(阅读笔记)垃圾回收的算法与实现 - 整体GC 是什么GC 是 Garbage Collection 的缩写,目的是可以寻找到内存中的垃圾,并将其进行回收,从而能让被再次分配使用。至于垃圾则是指已经不被任何程序所是有的内存空间。也就是说,GC 的目的有以下两条定位垃圾回收垃圾GC 的一些基本概念对象对象是 GC 操作的基本单位,可以理解成分配的一块内存,对象包含两部分。Hea...原创 2019-07-21 03:13:15 · 193 阅读 · 0 评论 -
(阅读笔记)垃圾回收的算法与实现 - Mark Sweep
文章目录基础实现代码优点缺点内存的分配碎片化分配速度慢与写时复制技术不兼容算法改进CompactMultiple Free-ListBiBOPBitmap MarkingLazySweepMarkSweep 即 标记 - 清除算法MarkSweep 从名字就能知道,此算法包含两个阶段标记阶段,负责将所有活动对象打上标记清除阶段,负责将没有被标记的对象回收标记阶段从 root 进行出发...原创 2019-07-21 20:00:15 · 349 阅读 · 0 评论 -
(阅读笔记)垃圾回收的算法与实现 - Reference Counting
文章目录基础实现代码优点缺点计数器操作繁重计数器占位多实现繁琐复杂循环引用无法回收算法改进延迟引用计数法ZCT优点缺点Sticky 引用计数法啥都不做使用 MarkSweep1 位引用计数法(标签法)优点缺点部分 MarkSweep 算法( 4 色算法)缺点MarkSweep 的逻辑是判断对象是否存在引用,而 引用计数法 则在这个逻辑上更进了一步,引入计数器的概念来统计对象当前的被引用次数。如果...原创 2019-07-26 01:54:25 · 338 阅读 · 0 评论 -
(阅读笔记)垃圾回收的算法与实现 - 复制算法
文章目录基础实现代码优点缺点Cheney 的 GC 复制算法代码优点缺点近似深度优先搜索方法状态执行过程多空间复制算法整体思路是,将堆分为二等份,当其中一份分配不够时,启动 GC 递归从根节点出发(深度优先),将对象拷贝到另外一半,然后将原先部分全部回收。循环往复。考虑到对象被引用的复杂性,只有当一个对象被 完全拷贝 完成以后,才会更新指向其的地址。基础实现代码type object s...原创 2019-08-21 01:02:17 · 340 阅读 · 0 评论 -
(阅读笔记)垃圾回收的算法与实现 - 分代垃圾回收
(阅读笔记)垃圾回收的算法与实现 - 分代垃圾回收分代垃圾回收是即将对象进行分类,然后针对不同类使用不同的算法策略。分类是按照对象存活时间进行,新创建的对象会被称为新生代,而经历过一定 GC次数以后还或者的对象,则是老年代,针对新生代对象的GC被称为 minorGC 或者 Java 中的 youngGC,针对老年代对象的 GC 被称为majorGC 或者 Java 中的 FullGC有一个基本...原创 2019-10-09 01:42:01 · 258 阅读 · 0 评论 -
(阅读笔记)垃圾回收的算法与实现 - 增量式GC
增量式 GC 是将 GC 和 mutator 一点一点交替运行的手法,而不是像停止型GC,需要等到 GC 执行完成。 停止型 GC 的最大暂停时间太长。三色标记算法增量式 GC 即 gc 与 mutator 间歇执行,那么 gc 就需要维护住『状态』让下一次运行时可以正常执行,为了达到这个效果,引入了下面几个结构对象的 mark 标记gc 阶段一个 markStack,用来存储扫描中...原创 2019-10-09 17:01:22 · 622 阅读 · 0 评论