著名开源开发者 Fabrice Bellard(因 QEMU、TinyCC、FFmpeg 和 QuickJS 等项目而知名)开源了一个全新 Java 引擎:MicroQuickJS,特点是极低的资源占用,专为嵌入式系统和受限内存环境设计。
开源地址:https://github.com/bellard/mquickjs
根据介绍,MicroQuickJS(又名 MQuickJS)是一款面向嵌入式系统的 Java 引擎。它仅需 10kB 的 RAM 即可编译和运行 Java 程序。
整个引擎(包括 C 库)大约需要 100kB 的 ROM(ARM Thumb-2 代码),其运行速度与 QuickJS 相当。
MQuickJS 支持简化版 Java 语言子集,类似 ES5 范围,但比标准 ES5 更严格,也不包括 Java 中所有现代大型特性,目的是减少运行时内存压力和复杂性。
尽管 MQuickJS 与 QuickJS 共享许多代码,但为了减少内存消耗,其内部机制有所不同。具体而言,它依赖于追踪式垃圾回收器,虚拟机不使用 CPU 堆栈,并且字符串以 UTF-8 编码存储。
Fabrice Bellard 是法国计算机程序员,以编写FFmpeg,QEMU和Tiny C编译器而闻名。他开发了Bellard公式来计算pi的位数。2012年,贝拉德(Bellard)与弗兰克·斯皮内利(Franck Spinelli)共同创立了一家电信公司Amarisoft。
1972年出生,17岁创建了可执行的压缩器LZEXE。
1996年他编写了一个简洁但是完整的C编译器和一个Java虚拟机Harissa。
1997年,他发现了一个新的,更快的公式计算pi的位数。
1998年编写了一个简洁的OpenGL实现TinyGL。
2000年开发FFMPEG。
2002年,他开发了TinyGL,这是适用于嵌入式环境的OpenGL的子集。
2003年开发了Emacs克隆QEmacs。
2003年发明QEMU 通用机器仿真器和虚拟器。
2004年,他编写了TinyCC引导加载程序,该加载程序可以在15秒内从源代码编译并引导Linux内核。
2005年,他设计了一种系统,该系统可以通过直接从标准PC和VGA卡生成VHF信号来充当模拟或DVB-T数字电视发射机。
2011年,他创建了一个用纯Java编写的最小PC模拟器。该仿真硬件包括一个32位x86兼容CPU,一个8259可编程中断控制器,一个8254可编程中断定时器和一个16450 UART。
2009年,他在计算pi的过程中创下了世界纪录,在90天内将其计算为将近2.7万亿个位。Slashdot写道:“虽然改进似乎很小,但它是一项了不起的成就,因为只使用了价格低于3,000美元的一台台式机,而不是以前记录中的数百万美元的超级计算机。
2011年,他获得了O'Reilly开源奖。
2014年,他提出了更好的便携式图形(BPG)图像格式,以替代JPEG。
2019年7月,他发布了QuickJS,这是一个小型且可嵌入的Java引擎。
最后看看 Fabrice Bellard 朴实无华的个人主页:
https://bellard.org/