v8引擎垃圾回收与执行js代码过程

v8中垃圾回收机制。

  • v8内存大小
    V8引擎中的内存使用: v8引擎在64位系统下最多只能使用约1.4GB的内存,在32位系统下最多只能使用约0.7GB的内存
    v8的内存限制(为什么内存这么小,对内存进行限制呢??)
    两点原因:
    1 js是单线程,V8执行垃圾回收时,程序中的其他各种逻辑都要进入暂停等待阶段,直到垃圾回收结束后才会再次重新执行JS逻辑。因此,由于JS的单线程机制,垃圾回收的过程阻碍了主线程逻辑的执行。
    2 垃圾回收本身也是一件非常耗时的操作,在垃圾回收的过程中浏览器一直处于等待的状态,同时会失去对用户的响应。
    因此如果内存使用过高,那么必然会导致垃圾回收的过程缓慢,也就会导致主线程的等待时间越长,浏览器也就越长时间得不到响应
  1. V8的垃圾回收策略
    v8的内存结构由:新生代,老生代,大对象区,代码区,map区,垃圾回收过程主要出现在新生代和老生代。
    新生代:新生代的垃圾回收过程中主要采用了Scavenge算法。新生代内存一分为二,
    处于激活状态的区域我们称为From空间,未激活(inactive new space)的区域我们称为To空间。
    这两个空间中,始终只有一个处于使用状态,另一个处于闲置状态。
    程序中声明的对象首先会被分配到From空间,当进行垃圾回收时,如果From空间中尚有存活对象,则会被复制到To空间进行保存,非存活的对象会被

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值