前段时间,Claude 搞了个大新闻——零代码,完全靠 Agent 写出了一个媲美 GCC 的编译器。虽然编译质量不如 GCC,但它能完整编译 Linux 这样庞大且复杂的开源项目。

消息一出,开源社区里做编译器开发的朋友们集体焦虑了一波。「大家都要失业了」的声音此起彼伏。

我当时就想:与其焦虑,不如亲自试试。

我选了一个比编译器更底层、更硬核的方向——QEMU 的 TCG(Tiny Code Generator)二进制动态翻译引擎,用 AI Agent 从零重写它。

结果?5 天时间,4.5 万行 Rust 代码,816 个测试用例,性能比原版 QEMU TCG 快 30%。

01 先看效果:差点翻车的现场演示

在正式讲技术之前,先看结果。

我们用 dhrystone(一个经典的 CPU 基准测试程序)来对比。先跑 QEMU 原版:

$TIMEFORMAT=%R;time qemu-riscv64 dhrystone0.4~0.5 秒

再跑我们用 Rust 重写的版本:

$TIMEFORMAT=%R;time target/release/tcg-riscv64 dhrystone0.32 秒

差点翻车——第一次跑的时候还慢了一丢丢,吓出一身冷汗。多跑几次取平均值,稳定在比原版快 20%~30% 的水平。

当然,这里要诚实地说:我们目前只实现了原版大约 30% 的功能。功能少,代码路径短,快一点是符合预期的。如果实现了全部功能还比原版慢,那才是白重写了。

02 什么是二进制动态翻译?

用一句话解释: 给你一本日语书,我把你想读的章节实时用中文朗读出来。

两个关键词: 翻译 + 实时 。

技术定义:在运行时,把客户机架构(比如 RISC-V)的机器码,动态翻译成宿主机架构(比如 x86-64)的机器码,然后直接执行。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐