Wild 与 Mold 链接器基准之争:差异到底出在哪
来源: davidlattimore.github.io — 2026-09-18
概述
Mold 更新了链接器基准并首次把 Wild 纳入比较,结果显示 Wild 明显更慢,与 Wild 自己八月四日发布的结果不符。Wild 作者 David Lattimore 逐项排查配置差异:Mold 在两次调用之间删除输出文件,Wild 的基准保留上一次的输出;Wild 历史上跑在 tmpfs 上(作者承认这是失误,多数用户并不在 tmpfs 上构建),Mold 用的是更贴近现实的 ext4;Mold 传了 --no-fork,Wild 只在测内存时传。在 16 核 M1 Ultra 上按 Mold 的配置重跑后,两者的比值基本复现:blender-debug 1.2 倍、godot-debug 1.2 倍、blender-release 0.9 倍、clang-release 1.0 倍。
核心要点
- 两边跑的机器完全不同:Mold 用 64 核 Threadripper 的 Ubuntu 24.04 与 M1 Ultra 的 Asahi Linux,Wild 用 16 核 Ryzen 9955hx 的 Ubuntu 26.04。
- 配置差异之一是输出文件:Mold 在每次调用之间删除输出文件,Wild 保留上一次的结果,而这一点的影响高度依赖文件系统。
- 作者承认 Wild 历史上在 tmpfs 上跑基准「回头看这可能是个错误,因为大多数用户不会在 tmpfs 上构建」,未来打算两种混用。
- 在 M1 Ultra 上复现后,两者比值与 Mold 的基准基本吻合:blender-debug 1.2x、godot-debug 1.2x、blender-release 0.9x、clang-release 1.0x。
- 以 clang-release 为例做配置扫描:ext4 + 删除输出 + --no-fork 时 Wild/Mold 为 1.0x,改成保留输出后变成 0.7x,可见基准配置本身能左右结论。
金句
在同一次比较里,只要把输出文件保留下来,Wild 相对 Mold 的比值就从 1.0 倍变成 0.7 倍。
👍 0
👎 0
← 返回 Lobsters 首页