BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

WebKit小组宣布开发基于字节码的JavaScript解释器——SquirrelFish

| 作者 Nick Laiacona 关注 0 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年6月13日. 估计阅读时间: 2 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

上周,WebKit开发团队向外正式宣布他们正在为WebKit的JavaScript引擎开发一个新解释器--SquirrelFish。根据WebKit官方博客,SquirrelFish的速度比之前的解释器快1.6倍”。

与之前的解释器使用遍历语法树的实现方式不同的是,SquirrelFish的实现采用字节码。

遍历语法树实现方式存在的高代价问题,在SquirrelFish字节码引擎中基本都不存在。首先,一个字节码流能够精确描述执行程序所需的操作,编译成字节码实际上隐性地跳过了不相关的语法结构。其次,字节码调度程序只是一个简单地从内存中直接读取,转而间接调度分支程序的过程。因此,执行字节码指令要比访问语法树节点快得多。第三,由于不再需要语法树,解释器无需继续在语法树节点间传送执行状态。

解释器使用字节码之后能够直接从字节码解释的所有的优化中获益匪浅,这也意味着SquirrelFish的速度还会继续得到提升。

在解析器使用字节码之后,我们目前实现的编译时优化有:
  • 常量折叠(constant folding)
  • 更强的拷贝传播
  • 类型推断——包括精确和推测两种方式
  • 基于表达式上下文的特化——尤其是void和boolean上下文
  • 窥孔优化(peephole optimization)
  • 逃逸分析 (escape analysis)

SquirrelFish团队特别对那些在同一领域工作的人们表示了感谢,正是他们的研究成果激发了SquirrelFish的开发灵感。

SquirrelFish的设计很大程度上来自于高效虚拟机领域的一些最新研究成果,其中包括M. Anton Ertl教授、David Gregg教授等人以及Lua编程语言的开发者们的研究。

查看英文原文:WebKit Team Announces SquirrelFish, a Bytecode Based JavaScript Interpreter

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT