![](https://img-blog.csdnimg.cn/851500c98f8d4d519ba3f2dcfa5b39ab.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
GC
文章平均质量分 70
...
~~^^
这个作者很懒,什么都没留下…
展开
-
【Java】GC 垃圾收集器
一、新生代1. Serial(单线程、 复制算法)只会使用一个 CPU 或一条线程去完成垃圾收集工作,并且在进行垃圾收集的同时,必须暂停其他所有的工作线程,直到垃圾收集结束。虽然在收集垃圾过程中需要暂停所有其他的工作线程,但是它简单高效,对于限定单个 CPU 环境来说,没有线程交互的开销,可以获得最高的单线程垃圾收集效率,因此 Serial垃圾收集器依然是 java 虚拟机运行在 Cli...原创 2020-03-07 15:05:34 · 215 阅读 · 0 评论 -
【垃圾回收算法与实现读书笔记】分代垃圾回收
一、分代分代垃圾回收(Generational GC)在对象中导入了“年龄”的概念,通过优先回收容易成为垃圾的对象,提高垃圾回收的效率。年龄:经历过一次 GC 后活下来的对象年龄加1。新生代、老年代把刚生成的对象称为新生代对象,到达一定年龄的对象则称为老年代对象。二、Ungar的分代垃圾回收David Ungar 研究出来的把 GC 复制算法和分代垃圾回收这两者组合运用的方...原创 2020-03-06 14:28:18 · 259 阅读 · 0 评论 -
【垃圾回收算法与实现读书笔记】标记-压缩算法(标记-整理算法)
标记-压缩算法GC 标记 - 压缩算法(Mark Compact GC)是将 GC 标记 - 清除算法与 GC 复制算法相结合的产物。一、Lisp2算法标记阶段与标记-清除算法一样,压缩阶段就是让有用的对象覆盖掉没用的对象,这比复制算法好,不用牺牲半个堆空间。完成该算法实现,至少要遍历3次堆:找到有用的对象前面没用的对象移动指针移动对象。优点:可有效利用堆缺点:遍历...原创 2020-03-06 13:26:52 · 341 阅读 · 0 评论 -
【垃圾回收算法与实现读书笔记】复制算法
一、复制算法GC 复制算法(Copying GC)是 Marvin L. Minsky 在 1963 年研究出来的算法。说得简单点,就是只把某个空间里的活动对象复制到其他空间,把原空间里的所有对象都回收掉。这是一个相当大胆的算法。在此,我们将复制活动对象的原空间称为 From 空间,将粘贴活动对象的新空间称为 To 空间。优点:优秀的吞吐量可实现告诉分配不会发生碎片化与缓存...原创 2020-03-06 12:56:10 · 185 阅读 · 0 评论 -
【垃圾回收算法与实现读书笔记】引用计数法 延迟引用计数法 Sticky引用计数法
1. 引用计数算法引用计数法中引入了一个概念,那就是“计数器”。计数器表示的是对象的人气指数,也就是有多少程序引用了这个对象(被引用数)。计数器是无符号的整数,用于计数器的位数根据算法和实现而有所不同。被引用的对象不仅自己计数器要加1,其自己包含的引用的对象的计数器也要加1。2.延迟引用计数法引用计数法的缺点就是计数器值的增减处理繁重。这里就引入了延迟引用计数法,延迟就是先不计数...原创 2020-03-05 21:26:26 · 487 阅读 · 0 评论 -
【垃圾回收算法与实现读书笔记】为什么标记-清除算法与写时复制技术不兼容?
1.标记阶段为堆里的所有活动对象打上标记2.清除阶段遍历整个堆,回收没有打上标记的对象3.写时复制技术就是多个进程共用一段内存时,其中任意一个进程都不能直接重写共享内存。因为从其他程序访问时,会发生数据不一致的情况。在重写时,要复制自己私有空间的数据,对这个私有空间进行重写。复制后只访问这个私有空间,不访问共享内存。像这样,因为这门技术是“在写入时进行复制”的,所以才被称为写时复制技术...原创 2020-03-05 20:09:07 · 234 阅读 · 0 评论