阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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:141343
用户头像

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

关注

评论

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

高并发之存储篇:关注下索引原理和优化吧!躲得过实践,躲不过面试官!

Coder的技术之路

数据库 高并发 索引结构 索引优化

【LeetCode】解码异或后的数组Java题解

Albert

算法 LeetCode 5月日更

GitHub Actions:真正的 DevOps CI

大龄程序员老羊

架构 DevOps 持续集成 Github Actions NoOps

Flink on Zeppelin 系列之:Yarn Application 模式支持

Apache Flink

flink

华云大咖说 | 安超DCM给数据中心“做主”

华云数据

流媒体:依托于声网的连麦解决方案

小岛上的黑桃六

架构 音视频 架构师 流媒体 声网

GitHub开源的最全中文诗歌古典文集数据库

不脱发的程序猿

GitHub 开源 程序人生 中华古典文集数据库

弹力抗刮硅油布胶浆

C13713145387

弹力抗刮硅油布胶浆

不反粘水性台板胶Waterborne table glue

C13713145387

不反粘水性台板胶

云图说|云数据库MySQL内核小版本升级全攻略

华为云开发者联盟

MySQL 云数据库 内核 华为云数据库 小版本升级

立体水性石头拉浆

C13713145387

【案例】新基建下星环科技城轨智能视频分析系统建设

星环科技

高并发系列:架构优化之从BAT实际案例看消息中间件的妙用

Coder的技术之路

高并发 高并发系统设计 消息队列 消息中间件

大四实习生”都四面成功拿到字节跳动Offer了,你还有什么理由去摸鱼?

学Java关注我

Java 编程 架构 面试 计算机

LiteOS内核源码分析:静态内存Static Memory

华为云开发者联盟

内存管理 LiteOS 静态内存 Static Memory Membox

从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶

比伯

Java 编程 架构 面试 计算机

用机器学习操控无人驾驶小车,竟然和训练狗狗的原理一样!?

亚马逊云科技 (Amazon Web Services)

高并发系列:存储优化之也许可能是史上最详尽的分库分表文章之一

Coder的技术之路

高并发 分库分表 高并发系统设计

Android中绘制圆角的三种方式

teoking

android

万丈高楼平地起,爆肝21000字Java基础知识总结,收藏起来总有用得着的时候

北游学Java

Java 集合 线程池 IO流

Java面试:BIO,NIO,AIO 的区别,别再傻傻分不清楚

Java大蜗牛

Java 程序员 面试 编程语言 后端

架构师实战营,模块三:架构设计详细文档

ifc177

#架构实战营

水性硅胶防滑透明浆

C13713145387

水性硅胶防滑透明浆

一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法

华为云开发者联盟

调试 图数据库 Gremlin 遍历源 图遍历

架构实战营模块三作业

日照时间长

架构实战营

百分点大数据技术团队:政务数据安全管理实践

百分点大数据团队

INNOVATE 2021 圆满落幕,一起盘点那些 AI 前沿实例!

亚马逊云科技 (Amazon Web Services)

专家解惑 | 关于华为云盘古大模型,你想问的都在这里~

华为云开发者联盟

计算机视觉 nlp 华为云 盘古大模型 预训练

聊聊我的编程时如何入门的

C语言与CPP编程

c++ 编程 程序人生 C语言 数据结构与算法

回顾 Alex Smola 讲述的“自动化机器学习(AutoML)”,本文带你了解 AutoGluon!

亚马逊云科技 (Amazon Web Services)

负载均衡续:万亿流量场景下的负载均衡实践

Coder的技术之路

负载均衡 架构 高并发 负载均衡架构

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