用 AI 写出编译仅需约 5 微秒的 JIT 编译器
来源: malisper.me — 2026-08-11
概述
pgrust 作者讲述如何借助 AI 写出一个编译仅需约 5 微秒的 JIT 编译器。历史上快速 JIT 是「黑魔法」,需要手写汇编,导致几乎没有数据库自带 JIT。作者采用 copy-and-patch 方法:把常用指令序列做成模板(stencil),从正则表达式的 AST 逐个填充、拼装成 ARM64 机器码,再用 mmap 载入可执行内存。最终玩具正则引擎的 JIT 版本性能几乎追平手写实现,比解释器快一个数量级。
核心要点
- 借助 AI 直接面向汇编写 JIT 编译器,使编译时间降到约 5 微秒,从而可对每条查询都做 JIT。
- 采用 copy-and-patch:用指令模板(stencil)填充具体操作细节,再拼接成完整程序。
- 生成的 ARM64 代码用栈做回溯、以 NUL 结尾的字符串免去长度比较,性能接近手写实现。
- 用 mmap 分配 RWX 内存、pthread_jit_write_protect 绕过 Apple W^X 并刷新指令缓存。
金句
LLM 降低了入门门槛,让写一个 JIT 编译器变得容易得多。
👍 0
👎 0
返回 Lobsters 首页