V8的垃圾回收机制

本博客内容整理自朴灵老师的《深入浅出Node.js》第五章内存控制。

V8的内存限制

64位操作系统约为1.4G,32位操作系统约为0.7G。
–max-old-space-size和–max-new-space-size可以调整限制内存的大小

V8的对象分配。

所有的Javascript对象都是通过堆来进行分配的.

V8的垃圾回收机制

  1. 垃圾回收算法

  2. V8的内存分代。将内存分为新生代和老生代。新时代中的对象为存活时间较短的对象,老生代中的对象为存活时间较长或常驻内存的对象。

  3. Scavenge算法。新时代中的对象主要采用Scavenge算法进行垃圾回收。

  4. Mark-Sweep & Mark-Compact。用于老生代中的垃圾回收。Mark-Sweep是标记清除的意思,标记活的对象,清除没有标记的对象。回收后会造成内存碎片。因此有了Mark-Compact(标记整理)。将活着的对象往一边移动,完成后清除边界外的内存。

  5. Incremental Marking(增量标记)。目的为了减少垃圾回收最大停顿时间。

堆外内存。

不是通过V8分配的内存成为堆外内存,没有1.4G或者0.7G的限制。如Buffer。

内存泄漏。

慎将内存当缓存,可用Redis。

内存泄漏排查

《深入浅出Node.js》5.5.1节有详细描述
排查工具:

  1. node-heapdump
  2. node-memwatch

附上资源 《深入浅出Node.js》PDF
链接: https://pan.baidu.com/s/1KbZzryRAtJLuz33qh4TTgw 提取码: w1c5

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值