写点什么

轻量可嵌入的 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:4210201
用户头像
王莹 腾讯云产品运营

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

关注

评论 3 条评论

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

Android Studio 模拟器卡慢、占内存解决方法,35岁技术人如何转型做管理

android 程序员 移动开发

企业很难招到合适的员工,怎么办?

低代码小观

招聘 企业管理 企业招聘 招聘系统 招聘管理系统

Android OOM:内存管理分析和内存泄露原因总结,网易架构师深入讲解Android开发

android 程序员 移动开发

Android Retrofit 2,flutter游戏源代码

android 程序员 移动开发

Android Studio 4,移动开发平台

android 程序员 移动开发

读完这些“Java 技术栈”,拿下阿里 Offer 没问题

Java高级开发

java

Android Studio项目用Git上传至码云(OSChina)(1),flutter面试题

android 程序员 移动开发

Android Studio 4(1),Android面试超详细知识点

android 程序员 移动开发

2021年11月墨天轮国产数据库排行榜:openGauss闯入前三,Kingbase流行度与日俱增,TDengine厚积薄发

墨天轮

opengauss TiDB oceanbase 国产数据库

android LifeCycle-简单使用和详细原理解析,2021大厂Android面试经历

android 程序员 移动开发

Android Material Design尝鲜,阿里P8面试官都说太详细了

android 程序员 移动开发

Android NDK 开发之 CMake 必知必会,后台开发Android岗

android 程序员 移动开发

Android RecyclerView的简单使用,我的阿里手淘面试经历分享

android 程序员 移动开发

android RoundedBitmapDrawable最简单方式实现圆角,事件分发机制流程图

android 移动开发

Android OKHttp 可能你从来没用过的拦截器 【实用推荐】

android 程序员 移动开发

Flutter性能监控实践

贝壳大前端技术团队

flutter 性能 监控 优化

iOS开发-百度一面总结

iOSer

ios iOS面试 ios开发 百度面试

rabbitmq的死信队列

小鲍侃java

11月日更

Android Studio真机 设置 和 错误排查,安卓面试题最新2020

android 程序员 移动开发

Android Studio安装及问题解决,一文搞懂JVM架构

android 程序员 移动开发

计算机网络小知识集锦 Ⅰ(厕所读物系列)

Regan Yue

计算机网络 11月日更 厕所读物

Android NDK之旅——图片高斯模糊,30岁以后搞Android已经没有前途

android 程序员 移动开发

会声会影VS剪映?免费虽好,但花钱的快乐你想象不到!

懒得勤快

《设计模式就该这样学》之使用策略模式重构电商折扣和支付场景

Java高级开发

程序员 设计模式 java

Android Studio 3,android通知栏自响应事件

android 程序员 移动开发

Android Studio上Kotlin的入门,一次关于JVM的面试经历

android 程序员 移动开发

Android R 新特性变化,三级缓存框架问题你都了解了吗

android 程序员 移动开发

Android MTK 设置默认启动 Launcher,android实战pdf

android 程序员 移动开发

耗时两个月,我终于把牛客网最火的Java面试题整理成册了,在Github标星60K

Sakura

Java 程序员 架构 面试 后端

Android PinnedHeaderListView 详解,flutter技术解析与实战

android 程序员 移动开发

Android Studio安装更新终极解决方式,android开发从入门到精通第2版

android 程序员 移动开发

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