JS内存垃圾回收

本文介绍了V8引擎的内存管理和垃圾回收策略,包括新生代和老生代对象的区分,以及对应的回收算法,如空间复制、标记清除和增量标记。详细阐述了新生代对象的回收过程,并讨论了闭包是否会导致内存泄漏的问题,提供了检测JavaScript内存泄漏的方法和内存泄漏的常见场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识V8

V8是一款主流的 JavaScript 执行引擎, Chrome浏览器、NodeJs都在使用

V8采用即时编译,将源码翻译成当前可以直接执行的机器码,使得执行速度很快

V8内存设限,64位操作系统不超过1.5G, 32位操作系统不超过800M

V8垃圾回收策略

采用分代回收的思想

内存分为新生代、老生代

针对不同对象采用不同算法

V8垃圾回收策略图示

 

V8中常用GC算法

分代回收

空间复制

标记清除

标记整理

标记增量

V8如何回收新生代对象


V8内存分配

 V8内存空间一分为二,左侧用于存储新生代对象

小空间用于存储新生代对象 (64位操作系统大小是 32M | 32位操作系统大小是 16M)

新生代指的是存活时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值