生猛!FFmpeg 开发者徒手撸了一个 JS 引擎
(给程序员的那些事加星标)
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 年出生,著名的计算机程序员,因 FFmpeg、QEMU 等项目而闻名业内。精通 C 和 JavaScript。
在读高中时,就开发了著名的可执行压缩程序 LZEXE,这是当年 DOS 上第一个广泛使用的文件压缩程序。
在 2000 年,他开发了 FFmpeg。
在 2011 年,他使用 JavaScript 写了一个 PC 虚拟机 Jslinux,可以在浏览器中直接运行 Linux 或 Windows 操作系统。
上面只是他的众多作品中少数几个。下面是维基百科上的介绍。
(截图来自维基百科)
网友评论
还有什么东西是 Fabrice 不能做的么?我的意思是,FFmpeg 本身几乎就是一篇博士论文,他仍然设法找到时间来做 TinyC 和 QEMU,现在又还做了 QuickJS。
这家伙就是个奇才。你也可以感谢他的 ffmpeg 和 qemu。我曾经工作过的一家公司试图聘请他做顾问,因为他在软件中实现了 LTE BTS。还有什么是他没法做的吗?
往期热文(点击图片即可阅读)
关注「程序员的那些事」加星标,不错过圈内事
大佬的作品,你看到了么?
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 澳门是伟大祖国的一方宝地 7974320
- 2 80岁顶级富豪再婚娶33岁华裔妻子 7906128
- 3 星巴克大罢工 7815050
- 4 2024 向上的中国 7712454
- 5 向佐 我一踢腿就会走光 7640903
- 6 男子钓上一条自带“赎金”的鱼 7527423
- 7 特朗普:马斯克不会成为总统 7404516
- 8 鹿晗录制新综艺 法令纹明显 7385259
- 9 韩国一军方驻地爆炸 3名平民被烧伤 7267293
- 10 大S老公具俊晔站C位跳女团舞 7105315