chuanye
小狐狸
小狐狸
  • UID38561
  • 注册日期2012-03-30
  • 最后登录2012-04-04
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:1355回复:2

FF的js引擎

楼主#
更多 发布于:2012-03-31 09:07
最近一直在梳理火狐的js引擎的相关知识,我们都知道火狐使用了多种引擎,比如SpiderMonkey,TraceMonkey,JägerMonkey,下半年应该又要发布IonMonkey了,在网上找了很多资料,也拜读了firefox诸多大牛的博客,可是大部分都是英文的,小弟英语四级勉强过关,看起来确实吃力,故在此将我所疑惑的问题记录下来,还请各位大侠不吝赐教:
1、JS引擎各个阶段分别引入了什么功能,具有什么特点?FF计划下半年推出IonSpider,但是和12.0正式版一期推出吗?
2、请问有谁曾经在ARM上交叉编译成功过FF吗?或者在Alpha或者mips等结构(X86结构以外即可)上编译成功过吗?
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
2楼#
发布于:2012-03-31 09:07
作为普通用户,就知道速度越来越快效率越来越高了……尤其是Type Inference技术的引入,对于js这种弱类型语言应该很有帮助吧~(http://people.mozilla.org/~lmesa/ti-draft.pdf)

不过弱类型好讨厌……玩了两天js,感觉受到精神污染了= =
-いたんですか? -ええ、ずっと
游客

返回顶部