以前没有自己写过js引擎任何的研究文章,最近一直在做前端性能优化的研究,今天在看各大js引擎优化细节相关的文档中看到了这些名词。
简单记录一下吧。
---------------V8
1. 下面的内容是查阅自维基百科
V8是一个由丹麦Google开发的开源JavaScript引擎,用于Google chrome。Lars Bak是组长,v8在执行之前将JavaScript编译成机器码,而非字节码或者是直译,以此提升性能。更进一步,使用了如内联等方法来提高性能。V8组译器是基于Strongtalk组译器。
2. 关于Lars Bak
--其实从1988年就开始参与虚拟机的开发,在1991年的时候参与了Self虚拟机的开发,到1997年Java HotSpot引擎技术的lead,同时也开发了高性能的Java ME虚拟机。所以其实在v8出来的时候,大哥已经在这个领域研究了20年。所以有的人说v8到现在还是最NB的引擎。
3. V8的特性简单介绍:
--来自官方http://code.google.com/intl/zh-CN/apis/v8/design.html
主要包含3个:
- 快速属性访问(Fast Property Access)
- 动态机器码生成(Dynamic Machine Code Generation)
- 高效的垃圾收集(Efficient Garbage Collection)
- 在执行垃圾收集周期内停止程序执行
- 在大部分的垃圾收集周期中,只处理对象堆的一部分。这会减轻停止应用程序而受到的影响。
- 总是准确地知道内存中对象和指针的位置。这样就避免了错误地把对象当做指针而因此造成的内存泄露。
Gecko是套开放原始码的、以C++编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。 这套排版引擎提供了一个丰富的程序界面以供因特网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等等。虽然最初的主要对象是 Mozilla的衍生产品,如Netscape和MozillaFirefox,现在已有很多其他软件现在利用这个排版引擎。Gecko是跨平台的,能在 Microsoft Windows、Linux和MacOS X等主要操作系统上运行。 Gecko为第2个最流行的排版引擎,仅次于Trident(用于Windows版的Internet Explorer)。
我们一般看到的使用Gecko的
Mozilla Firefox Maxthon(本身并不支持,需要使用插件)
WebKit 是一个开源的浏览器引擎,WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。
WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。Apple将 KHTML 发扬光大,推出了装备 KHTML 改进型 WebKit 引擎的浏览器 Safari。
WebKit 的优势在于高效稳定,兼容性好,且源码结构清晰,易于维护。
WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。
2008年9月2日,谷歌公司发布的第一个版本Google Chrome(中文名为谷歌浏览器)就采用了Webkit引擎。
2009年,广受关注的Google手机的自带的浏览器也是Webkit内核,加载网页速度比IE手机浏览器快了近一倍。
2010年1月24日,搜狗公司发布搜狗浏览器V2.0Beta,采用Webkit引擎,并支持与IE引擎互相切换。
2010年1月24日,傲游3.0beta发布。2011年9月7日已发布3.1.7.1000。
下面转载一个链接, 出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html