垃圾回收器的种类

       ​垃圾回收器分为几种类型。对于每种类型,有些回收器又可以被分类为“mostly”(STW 的 GC)(部分 STW,部分和应用程序一起执行),也即部分并发 GC,比如 CMS 回收器。这意味着, 有时它并不是根据这样的类型来执行操作的,当某些情况发生时,它需要有一个后备机制, 比如 CMS 之后的 Serial GC 兜底(想象一下应用程序分配内存的速度大于垃圾回收速度会怎 样)。因此,部分并发的回收器可以与应用程序执行并发操作,并且只在偶尔需要时停止。 分类如下:

1、Concurrent Collector(并发回收器)——当应用程序执行时,并发地执行垃圾回收。

2、Parallel Collector(并行回收器)——使用多个线程并行回收

3、Stop-the-world (STW)——在应用程序完全停止时执行垃圾回收

4、Incremental(增量) ——将垃圾回收切割为一系列的增量执行,其中可能有很长的间隔。 应用程序在垃圾回收期间根据需要暂停,在两次增量之间运行,这也可以称之为夹缝中生存

5、Moving(对象转移) ——回收器在垃圾回收期间移动活动对象,并且必须更新对这些活动 对象的引用

6、Conservative(保守 GC) ——大多数非托管运行时都是保守 GC 的。在这种模型中,回收器 不能确定某个字段是否是引用,所以它假设它是引用。这与精确式回收器相反

7、Precise(精确 GC) ——精确回收器精确地知道每个可能的对象引用的位置。因为如果不精确,回收器就不能成为进行对象转移,因为你必须知道在移动活动对象时要更新哪些引用。 精确回收器识别内存堆中的活动对象,回收死对象持有的资源,并定期重定位活动对象的位 置。

       精确地说,虚拟机所做的大部分工作实际上都在编译器中,而不是回收器本身。今天所有的 商业 jvm 都是可对象转移且精确的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值