写点什么

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

  • 2008-06-12
  • 本文字数:665 字

    阅读完需:约 2 分钟

上周,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

2008-06-12 16:141579
用户头像

发布了 88 篇内容, 共 271.1 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Redis深入浅出 知识总结

何你一起

数据库 redis 缓存 11月月更

React面试:谈谈虚拟DOM,Diff算法与Key机制

beifeng1996

React

JavaScript箭头函数与普通函数的区别

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

Web前端安全系列之:XSS攻防

GFE

前端 前端安全

Docker PHP 入门实践(四)

Felix

Docker thinkphp 11月月更 高德天气Api

面试官最喜欢问的几个react相关问题

beifeng1996

React

Databend 集群部署 | 新手篇(2)

Databend

开源

京东云开发者|深入JDK中的Optional

京东科技开发者

jdk java8 NPE 空指针 Optional

React源码分析7-state计算流程和优先级

goClient1992

React

javascript拖拽功能

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

100+款AI产品薅羊毛攻略(下)——轻轻松松节省几十万

夏夜许游

人工智能 AI 阿里云视觉智能开放平台

京东云开发者|深入JDK中的Optional

京东科技开发者

jdk java8 NPE 空指针 Optional

信创引领!亚信科技AntDB数据库助云南高速核心业务降本增效、系统自主可控

亚信AntDB数据库

AntDB 国产数据库 aisware antdb AntDB数据库 高速清分系统

优秀开源云原生工具推荐——系列4

HummerCloud

云原生 边缘计算 优秀开源项目 开源云工具 11月月更

计算机网络:信道划分介质访问控制

timerring

计算机网络 11月月更 信道划分

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

在Dubbo中,模板方法模式 用得真6

小小怪下士

Java 程序员 dubbo 阿里

鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转

TiAmo

华为 鸿蒙 11月月更

使用Socket.io库制作一个简单的实时聊天室

格斗家不爱在外太空沉思

JavaScript websocket 11月月更

各地政府先后试点“首席数据官”,数据化转型或成为城市治理的重要抓手

数造万象

数字化转型 数据治理 DataOps 大数据中台

python中私有成员和公有成员

乔乔

11月月更

云栖大会,未来万物皆是计算机?

阿里云CloudImagine

阿里云 云栖大会

高效数据通道支撑生产情况实时分析与可视化|工业4.0智慧工厂

EMQ映云科技

物联网 IoT 数据可视化 11月月更 云边协同

React源码分析6-hooks源码

goClient1992

React

京东云开发者|软件架构可视化及C4模型:架构设计不仅仅是UML

京东科技开发者

软件架构 架构设计 架构可视化 图形化编排 C4模型

“吃”完这本Java性能调优实战,MySQL+JVM+Tomcat等问题一键全消

程序知音

Java MySQL JVM java面试 性能调优

主动学习(Active Learning)简介综述汇总以及主流技术方案

汀丶人工智能

nlp 11月月更 主动学习

云上创新!观测云携手阿里云日志服务 SLS,全面升级云上应用可观测性体验

观测云

python小知识-并发编程(2)

AIWeker

Python 人工智能 并发编程 python小知识 11月月更

react相关面试知识点总结

beifeng1996

React

SAP 电商云的 Spartacus Storefront 如何配置多个 JavaScript Application

汪子熙

angular SAP commerce 电商云 11月月更

WebKit小组宣布开发基于字节码的JavaScript解释器——SquirrelFish_Java_Nick Laiacona_InfoQ精选文章