node.js 垃圾回收

 

V8脚本引擎

 

垃圾回收机制

 

1.scavenge

scavenge主要采用了cheney算法。

cheney算法采用复制的方式实现。主要用于新生代内存(由于新生代内存生命周期短)。

优点:时间效率高,空间换取时间。

过程:将内存分为一分为二,两部分semispace,分别为 From和To。垃圾回收时,检查From内存中存活的对象复制到To中,释放From空间,并将From和To角色调换。复制条件,如果对象被复制多次晋升到oldspace,如果超过25%,同样晋升。

 

2.Mark-sweep

 

由于老生代对象存活时间都比较长,使用scavenger效率低。mark-sweep 采用遍历标记存活对象,然后清理没有标记的对象。

缺点:清理之后,内存容易碎片化,影响再次分配。

 

3.Mark-Compact

 

相比于Mark-sweep,标记之后,将存活对象移动到一块,然后清理。

缺点:执行效率慢。

 

优先采用Mark-sweep,空间不足采用mark-compact

 

V8为了减少一次全停顿时间,采用增量和延迟清理技术,将清理和整理过程分小步进行。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值