5 天,4.5 万行 Rust,性能超 QEMU 30%:我用 Claude + Codex 零代码重写了一个二进制翻译引擎
·
前段时间,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)的机器码,然后直接执行。
更多推荐

所有评论(0)