阅读:1627回复:2
FF的js引擎
最近一直在梳理火狐的js引擎的相关知识,我们都知道火狐使用了多种引擎,比如SpiderMonkey,TraceMonkey,JägerMonkey,下半年应该又要发布IonMonkey了,在网上找了很多资料,也拜读了firefox诸多大牛的博客,可是大部分都是英文的,小弟英语四级勉强过关,看起来确实吃力,故在此将我所疑惑的问题记录下来,还请各位大侠不吝赐教:
1、JS引擎各个阶段分别引入了什么功能,具有什么特点?FF计划下半年推出IonSpider,但是和12.0正式版一期推出吗? 2、请问有谁曾经在ARM上交叉编译成功过FF吗?或者在Alpha或者mips等结构(X86结构以外即可)上编译成功过吗? |
|
1楼#
发布于:2012-03-31 09:07
我也不了解,SpiderMonkey比较早了,3.0之前的(3.0似乎也用这个),就是个js解析器
TraceMonkey 3.1后推出的(3.5/3.6),引入类似JVM的JIT技术,但比较初级,对无法编译的js码会回归到SpiderMonkey,基本上只对重复循环有较强的增益。技术组件是Trace Trees和Nanojit。 JägerMonkey 基本上算是TraceMonkey基础上的革新,除了已有的JIT,新引入了WebKit引擎的Assembler,引入了类型推论,一些js函数已经有初步的内联,4开始的几个版本是TM+JM的,某些依赖于Nanojit(TraceMonkey)的解释,现在(不知从何时开始)我看代码里已经摒弃Nanojit了,估计是完全JägerMonkey了吧。 IonMonkey的资料比较少,据公开的知识说,IonMonkey对很多js加强了内联特性,对一些无效的代码删除,引入类型特殊化,具体反正不知道什么意思。 Firefox on arm的我没编译过,和其他开源软件在arm上的编译想必差不多吧 CC和CXX设置为你的arm交叉编译器 其他configure参数差不多一致,arm的需要加入 --with-arm-kuser |
|
2楼#
发布于:2012-03-31 09:07
作为普通用户,就知道速度越来越快效率越来越高了……尤其是Type Inference技术的引入,对于js这种弱类型语言应该很有帮助吧~(http://people.mozilla.org/~lmesa/ti-draft.pdf)
不过弱类型好讨厌……玩了两天js,感觉受到精神污染了= = |
|
|