写点什么

轻量可嵌入的 QuickJS 引擎重磅开源,它会是下一个 V8 吗?

  • 2019-07-15
  • 本文字数:1216 字

    阅读完需:约 4 分钟

轻量可嵌入的QuickJS引擎重磅开源,它会是下一个V8吗?

上周是这是 JavaScript 引擎的重要一周。在 Facebook 发布 Hermes 引擎之前, Bellard 以及 C 语言专家 Charlie Gordon 公开发布了 QuickJS。它是在 MIT 许可下发布的一个轻量可嵌入的 JavaScript 引擎,支持最新的 ES2019 语言规范。


正如 Twitter 上的一位网友所说“JavaScript 引擎很像公交汽车:你等了好几年都没来,然后两个闪亮新玩家一并出现!”


QuickJS 的特点

QuickJS 支持 ES2019规范, 包括模块,异步生成器和代理。同时可选地支持数学扩展,例如BigInt、BigFloat 和运算符重载。


主要特点:


  • 小巧且易于嵌入:只需几个 C 文件,无外部依赖,x86 下一个简单的 hello world 示例程序仅 190 KB 的大小。

  • 具有极低启动时间的快速解释器:在台式 PC 的单核上,在大约 100 秒内运行ECMAScript测试套件56000 次测试。运行时实例的完整生命周期在不到 300 微秒的时间内完成。

  • 支持ES2019 ,包括模块、异步生成器和完整的 Annex B 支持(传统的 Web 兼容性)。

  • 100%的通过了 ECMAScript 测试用例。

  • 可以将 Javascript 源编译为没有外部依赖的可执行文件。

  • 使用引用计数(以减少内存使用并具有确定性行为)的垃圾收集与循环删除。

  • 数学扩展:BigInt,BigFloat,运算符重载,bigint 模式,数学模式。

  • 在 Javascript 中实现的具有上下文着色的命令行解释器。

  • 带有 C 库包装库构建的内置标准库。

能否取代 V8

这个消息一经发出便在 Hacker News、知乎等社区上引发热议。


Hacker News 上网友“Aissen”说:


我私下里见过 Fabrice 一次,他绝对是一个非常谦逊的人。当他告诉我们在大约一年前开始做这个项目时,他认为这不是什么大事,只是一个小型的 js 引擎,永远不会与 v8 竞争。在回答完我的几个问题之后,显然目标是实现最新的 ECMAScript 规范,包括所有好的东西。但它永远不会与 V8 成为竞争的关系。


知乎网友“龙泉寺扫地僧”说


又是 Bellard 大神的作品,此大神当年看他写的 QEMU 就惊为天人,现在终于对 JS 下手了。


V8 越来越大,最新版好像都快 10M 了,其实很多时候我就想带个小巧可用的 js 引擎而已,这次刚好可以填补这方面的空白(其他 js 引擎对标准实现的还不够完善)。要不是 Blink 和 V8 深度绑定,我真想把 V8 替换掉。


不过好像没有 JIT?那就有点遗憾了。毕竟 Bellard 大神就是做编译优化出身的,QEMU 里的能跑这么快就是靠动态翻译执行,希望后续能补上。


来源:https://www.zhihu.com/question/334509855/answer/746217029

一路开挂的作者

Fabrice 是一位法国著名的计算机程序员,因 FFmpeg、QEMU 等项目而闻名业内。他也是最快圆周率算法贝拉公式、TCCBOOT 和 TCC 等项目的作者。曾在国际 C 语言混乱代码大赛中两度获胜。


网友 justjavac 在知乎上晒出了作者之前的伟绩:



图片来源:https://www.zhihu.com/question/334509855/answer/745753879

网友尝鲜

QuickJS 以其轻巧好用的特性被大家广为赞赏,一些网友已经开始尝试使用它了,感兴趣的朋友可以去看下:


QuickJS for IOS:https://github.com/siuying/QuickJS-iOS


2019-07-15 19:4210391
用户头像
王莹 腾讯云产品运营

发布了 74 篇内容, 共 48.5 次阅读, 收获喜欢 231 次。

关注

评论 3 条评论

发布
用户头像
大神就是让人望尘莫及
2019-08-08 15:30
回复
用户头像
非一般的存在
2019-07-21 11:58
回复
用户头像
666
2019-07-15 23:35
回复
没有更多了
发现更多内容

Spring高手之路11——BeanDefinition解密:构建和管理Spring Beans的基石

砖业洋__

spring BeanDefinition Bean配置

加速未来!汽车之家App应用性能优化总结与后续展望

之家技术

前端 性能 App 质量 质量赋能

什么!?它竟然是免费的!

万界星空科技

开源 MES系统 免费软件 免费开源

华为终端生态商业平台颁发合作伙伴奖项!携手伙伴高效协同,聚势增长

最新动态

仪表板修改优化实操案例

搞大屏的小北

数据看板 大屏布局 大屏设计 大屏设计优化 数据看板优化

5个高并发场景优化的衡量指标

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

用友企业服务大模型YonGPT,赋能财务、人力、业务智能化

用友BIP

企业服务大模型 YonGPT

高能预警!突发服务器入侵,学会这招快速解决

百川云开发者

运维 安全 服务器 主机安全 主机管理

山东布谷科技详解Android端直播应用源码保持优质直播质量的技术(三):可变比特率

山东布谷科技

android 软件开发 源码搭建 直播应用源码 可变比特率

小模型赋能大电网,手机拍照来建档

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

Spring Boot 最佳实践

越长大越悲伤

Java spring Spring Boot

从原理聊JVM(四):JVM中的方法调用原理 | 京东云技术团队

京东科技开发者

Java JVM 多态 方法调用 企业号 8 月 PK 榜

“中国软件杯”飞桨赛道晋级决赛现场名单公布

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

【开源三方库】Aki:一行代码极简体验JS&C++跨语言交互

OpenHarmony开发者

OpenHarmony

汽车之家铸精品工程

之家技术

质量 质量赋能 质量监控 质量指标

详细的Java学习路线+Java每个阶段核心知识点+Java工作就业方向

java易二三

Java 编程 程序员 计算机 基础

事务,不只ACID | 京东物流技术团队

京东科技开发者

分布式事务 数据库事务 事务 企业号 8 月 PK 榜 AICD

大语言模型推理性能优化之七策

Baihai IDP

人工智能 大模型 白海科技 推理优化 大模型推理

如何在短视频中合成“虚拟数字人”?

阿里云CloudImagine

云计算 剪辑 视频云 数字人

DDD项目落地之充血模型实践 | 京东云技术团队

京东科技开发者

DDD 充血模型 聚合根 企业号 8 月 PK 榜

学生管理系统架构设计文档

艾瑾行

基于YonGPT 的智能大搜,让知识赋能业务和组织!

用友BIP

企业服务大模型 YonGPT

汽车之家APP端到端全链路治理最佳技术实践

之家技术

质量 质量赋能 端到端 质量监控 质量指标

JDV背后的技术-助力618 | 京东云技术团队

京东科技开发者

数据化 可视化软件 可视化展示 企业号 8 月 PK 榜

十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量

HarmonyOS开发者

HarmonyOS

共建共赢鸿蒙生态,加速实现拓量增长

最新动态

MaxCompute发布按量付费闲时版,计算成本最高节省66.66%!

阿里云大数据AI技术

MaxCompute

如何用IoT边缘连接器实现云端应用控制PLC?

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

汽车之家页面性能监控建设实践

之家技术

质量 质量赋能 质量监控 质量指标 质量检测

轻量可嵌入的QuickJS引擎重磅开源,它会是下一个V8吗?_编程语言_王莹_InfoQ精选文章