Opera全新JS引擎Carakan,目前数度是其他已存在JavaScript引擎(基于SunSpider)的2.5倍。其在转化为本地机器代码时专门针对正则表达式做了优化,有意思的是,Chrome浏览器也刚刚宣布了此点。
Carakan引擎的三个显著新特性:
1.基于寄存器的字节码: 之前的引擎“ECMAScript”使用的是基于堆栈字节码指令集,这种基于对堆栈存取的方法对于生成字节码是比较简单的。
在新的引擎里,我们采用了基于寄存器的字节码指令集,这种方式采用了固定大小的寄存器,每次操作都可以访问任意的寄存器,更少的指令被执行并且不会拷贝大量的数据。
2.本地代码生成: 我们将整个或部分“ECMAScript”引擎编译到本地代码中以达到更快的执行速度。
3.自动对象分类: 在新的引擎中每个对象都是被封装成类以存取不同的数据,这些类的划分是与原型保持一致的。
每个浏览器的JS引擎都不一样吗?
现在每个浏览器基本上都有自己的JS引擎(非浏览器引擎)了,如Firefox浏览器的TraceMonkey引擎,Google Chrome浏览器的V8引擎,Safari浏览器有SquirrelFish Extreme,目前又增加了Opera的Carakan。