v8 垃圾回收机制

一:专有名词介绍:

1. 新生代:在内存中存活时间较短的对象

2.老生代:在内存中存活时间较长或常驻的对象

3.Cheney算法:复制算法

4.Mark Sweep(标记清除):将需要被回收的对象进行标记

5.Mark  Compact(标记合并):将存活的对象移动到一边,将需要被回收的对象移动到另一边

二:敲重点

1.对于新生代来说采用的是复制算法,将内存分为from,to,其中from:to = 1:1

 

(1)检查 From 中的对象,当某个对象需要被回收时,将其留在 From 空间,剩下的对象移动到 To 空间,

(2)然后进行反转,将 From 空间和 To 空间互换。

(3)进行垃圾回收时,会将 To 空间的内存进行释放

 

2.对于老生代来说采用的是标记清除还有标记合并的算法,这里不存在将内存空间分为 from和to空间

(1)将存活的对象进行标记

(2)将存活的对象移到一边,将需要回收的对象移动到另一边

(3)将需要被回收的对象区域进行整体的垃圾回收

 

三:扩展 【新生代如何变成老生代的】

  1. 在垃圾回收的过程中,如果发现某个对象之前被清理过,那么会将其晋升到老生代内存空间中
  2. 在 From 空间和 To 空间进行反转的过程中,如果 To 空间中的使用量已经超过了 25%,那么就将 From 中的对象直接晋升到老生代内存空间中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值