在之前的几篇文章当中,我们深入了V8引擎的实现,讨论了Full Compiler、Crankshaft以及对象的内部表达。在这篇文章当中,我们来看看V8的 垃圾回收器 。
在之前的两篇文章中,我们讨论了V8的Full Compiler和对象的内部表示。在几年前,FC生成的原生代码相对于JavaScript来说已经不错了,但人们对性能的要求与日俱增,其速度标杆也越来越高,因此衍生出了Crankshaft。
在前一篇文章中,我们观察了V8的简单编译器——Full Compiler。在我们继续观察Crankshaft之前,为更好地理解它,我们首先来看看V8在内存中如何表达对象。
在过去的五年中,JavaScript的性能有了极大的提升,这主要归功于JavaScript虚拟机的执行机制由解释演变为了JIT。现在,JavaScript成为了HTML5的中坚力量,推动着新一波Web技术的发展。JavaScript引擎中,V8是最早使用原生代码的引擎之一。V8现已成为了Google Chrome、Android浏览器、WebOS及Node.js这样的其他项目中不可分割的重要组件。