Wild与Mold链接器性能差异真相
Benchmarking Wild vs. Mold
Mold近期更新了链接器基准测试并首次纳入了Wild,结果显示Wild显著慢于Mold,这与我们8月4日发布的基准测试结论截然相反。我深入探究了造成这种差异的原因,发现关键在于测试配置的不同:Mold使用ext4文件系统并在每次运行前删除输出文件,而Wild历史测试多在tmpfs上进行且保留旧文件。此外,Mold的--no-fork参数设置也影响了结果。当我在Apple M1上复现Mold的配置后,两者的性能差距基本一致。进一步分析显示,Wild在特定配置下表现更优,但Mold近期通过fallocate预分配空间和hugepages映射等优化实现了显著加速。尽管Wild将在下个版本加入这些优化,但在Threadripper等高端硬件上的多线程表现仍需更多实测验证。
Wild在允许fork且输出文件已存在于tmpfs时表现最佳,这与Mold基准测试使用的配置恰恰相反。