深入理解谷歌最强V8垃圾回收机制

有很多人都听说过V8引擎,但可能不是很了解,V8名称叫Chrome V8,是由谷歌开源的一个高性能 JavaScript 引擎。该引擎采用 C++ 编写,Google Chrome 浏览器用的就是这个引擎。V8 可以单独运行,也可以嵌入 C++ 应用当中。和其他的 JavaScript 引擎一样,V8 会编译、执行 JavaScript 代码,并一样会管理内存、垃圾回收等。就是因为 V8 的高性能以及跨平台等特性,所以它也是 Node.js 的 JavaScript 引擎。

V8引擎是前端开发者想升值加薪 必须越过的一个坎儿,因为涉及到性能,很多人认为没必要,但现在性能却是程序里最看重的事。作为当下使用最广泛的 JavaScript 引擎,V8 的生态圈非常庞大,这与它革命性的设计密不可分。

震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!

震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!

震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!

阅读本文之后,你可以了解到:

  • JavaScript的内存是怎么管理的?
  • Chrome是如何进行垃圾回收的?
  • Chrome对垃圾回收进行了哪些优化?

JavaScript的内存管理


不管什么程序语言,内存生命周期基本是一致的:

  1. 分配你所需要的内存
  2. 使用分配到的内存(读、写)
  3. 不需要时将其释放归还

与其他需要手动管理内存的语言不通,在JavaScript中,当我们创建变量(对象,字符串等)的时候,系统会自动给对象分配对应的内存。

var n = 123; // 给数值变量分配内存
var s = "azerty"; // 给字符串分配内存

var o = {
  a: 1,
  b: null
}; // 给对象及其包含的值分配内存

// 给数组及其包含的值分配内存(就像对象一样)
var a = [1, null, "abra"]; 

function f(a){
  return a + 2;
} // 给函数(可调用的对象)分配内存

// 函数表达式也能分配一个对象
someElement.addEventListener('click'function(){
  someElement.style.backgroundColor = 'blue';
}, false);

当系统发现这些变量不再被使用的时候,会自动释放(垃圾回收)这些变量的内存,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值