有很多人都听说过V8引擎,但可能不是很了解,V8名称叫Chrome V8,是由谷歌开源的一个高性能 JavaScript 引擎。该引擎采用 C++ 编写,Google Chrome 浏览器用的就是这个引擎。V8 可以单独运行,也可以嵌入 C++ 应用当中。和其他的 JavaScript 引擎一样,V8 会编译、执行 JavaScript 代码,并一样会管理内存、垃圾回收等。就是因为 V8 的高性能以及跨平台等特性,所以它也是 Node.js 的 JavaScript 引擎。
V8引擎是前端开发者想升值加薪 必须越过的一个坎儿,因为涉及到性能,很多人认为没必要,但现在性能却是程序里最看重的事。作为当下使用最广泛的 JavaScript 引擎,V8 的生态圈非常庞大,这与它革命性的设计密不可分。
震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!
震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!
震惊:阿里腾讯一线大厂前端面试学习经验,最完整面试真题分享!
阅读本文之后,你可以了解到:
-
JavaScript的内存是怎么管理的? -
Chrome是如何进行垃圾回收的? -
Chrome对垃圾回收进行了哪些优化?
JavaScript的内存管理
不管什么程序语言,内存生命周期基本是一致的:
-
分配你所需要的内存 -
使用分配到的内存(读、写) -
不需要时将其释放归还
与其他需要手动管理内存的语言不通,在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);
当系统发现这些变量不再被使用的时候,会自动释放(垃圾回收)这些变量的内存,