生猛!FFmpeg 开发者徒手撸了一个 JS 引擎

2019 年 7 月 26 日 前端大全

(给前端大全加星标,提升前端技能


7 月 12 日,Hacker News 首页有个热门消息,是大佬 Fabrice Bellard 在 7 月 9 日发布的新作品:QuickJS  JavaScript 引擎。



JS 引擎是执行 JavaScript 代码的程序或解释器,它以某种形式将 JS 代码编译为字节码。有个大家熟知的 JS 引擎是 V8,由 Google 用 C++ 实现的。

QuickJS 是一个可嵌入的小巧 Javascript 引擎。它支持 ES2019 规范,包括模块、异步生成器和代理。它还支持数学扩展,比如大整数(BigInt)、大浮点数(BigFloat)和操作符重载。

QuickJS 的主要特性:

0、小巧可嵌入:仅几个 C 文件,没有外部依赖,简单的 Hello World 程序需要 190 KiB 的 x86 代码。;

1、启动时间非常短的快速解释器:在单核的桌面 PC 上,运行ECMAScript 测试套件的 56000 个测试大约在 100 秒内。运行时实例的完整生命周期在不到 300 微秒内。

2、几乎完整支持 ES2019 ,包括模块、异步生成器和完整的附录B支持(遗留web兼容性)。

3、100% 通过 ECMAScript 测试套件。

4、可以把 Javascript 源代码编译到可执行文件,没有外部依赖。

5、垃圾回收使用引用计数(减少内存使用并具有确定性行为)和循环删除。

6、数学扩展:BigInt、BigFloat、操作符重载、bigint模式、数学模式。

7、命令行解释器,用 Javascript 实现上下文着色。

8、有一个小型的 C 内置标准库。


QuickJS 遵循 MIT 许可。


围观链接:https://bellard.org/quickjs/


QuickJS 的测评结果


(分数越高,表示越好)


Fabrice Bellard 是什么样的大佬?


他是法国人,1972 年出生,著名的计算机程序员,因 FFmpegQEMU 等项目而闻名业内。精通 C 和 JavaScript。



在读高中时,就开发了著名的可执行压缩程序 LZEXE,这是当年 DOS 上第一个广泛使用的文件压缩程序。


在 2000 年,他开发了 FFmpeg。


在 2011 年,他使用 JavaScript 写了一个 PC 虚拟机 Jslinux,可以在浏览器中直接运行 Linux 或 Windows 操作系统。




上面只是他的众多作品中少数几个。下面是维基百科上的介绍。


(截图来自维基百科)


网友评论


还有什么东西是 Fabrice 不能做的么?我的意思是,FFmpeg 本身几乎就是一篇博士论文,他仍然设法找到时间来做 TinyC 和 QEMU,现在又还做了 QuickJS。


这家伙就是个奇才。你也可以感谢他的 ffmpeg 和 qemu。我曾经工作过的一家公司试图聘请他做顾问,因为他在软件中实现了 LTE BTS。还有什么是他没法做的吗?



推荐阅读

(点击标题可跳转阅读)

8 个问题看你是否真的懂  JS

关于 Babel 你必须知道的

拆解 JavaScript 中的异步模式



觉得本文对你有帮助?请分享给更多人

关注「前端大全」加星标,提升前端技能

好文章,我在看❤️

登录查看更多
0

相关内容

JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
还在修改博士论文?这份《博士论文写作技巧》为你指南
最新《自动微分手册》77页pdf
专知会员服务
102+阅读 · 2020年6月6日
Python导论,476页pdf,现代Python计算
专知会员服务
261+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
已删除
架构文摘
3+阅读 · 2019年4月17日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
准确实用,7个优秀的开源中文分词库推荐
开源中国
5+阅读 · 2018年7月26日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
Revisiting CycleGAN for semi-supervised segmentation
Arxiv
3+阅读 · 2019年8月30日
Arxiv
5+阅读 · 2019年4月8日
TensorMask: A Foundation for Dense Object Segmentation
Arxiv
10+阅读 · 2019年3月28日
Arxiv
5+阅读 · 2017年7月23日
Arxiv
5+阅读 · 2016年10月24日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
还在修改博士论文?这份《博士论文写作技巧》为你指南
最新《自动微分手册》77页pdf
专知会员服务
102+阅读 · 2020年6月6日
Python导论,476页pdf,现代Python计算
专知会员服务
261+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
相关资讯
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
已删除
架构文摘
3+阅读 · 2019年4月17日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
准确实用,7个优秀的开源中文分词库推荐
开源中国
5+阅读 · 2018年7月26日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
Top
微信扫码咨询专知VIP会员