前言
今天狂风大作,雨滴慢慢的滴了下来。天气很冷,我也就不在公司耗着了。回家再为大家分享今天的学习内容吧。
其实,真的,作Java与Go的学习对比,其实还是比较费劲。想全所有的点,也比较累。哈哈,今天还是继续偷懒下,等着时间比较多,再好好梳理,继续差异的对比。
今天,群里小伙伴有说,Go的垃圾回收。那么,我简单说一下golong历史上跨越比较大的垃圾回收算法,三色标记算法。
垃圾回收
我们在学习java时,就被垃圾回收深深的折磨着。jdk8之后,垃圾回收器包含线性、并发标记清除和G1四个垃圾回收器。想要了解他们的工作原理和实现细节,需要花费很多的时间和精力。很多人,可能工作多年,也无从下手,也没有好好理解Java是如何执行垃圾回收的。
Go语言的垃圾收集从诞生的第一天就一直不断演进,从1.0开始,基本上没个版本,都在更新着性能。
其中比较重要的一个节点,是1.5版本。实现了基于三色标记清扫的并发垃圾收集器;
- 大幅度降低垃圾收集的延迟从几百 ms 降低至 10ms 以下;
- 计算垃圾收集启动的合适时间并通过并发加速垃圾收集的过程;
很多人,不是很了解三色标记算法。今天,我们来简单了解下,它是如何发挥魅力的。