Hacker News 中文摘要

RSS订阅

Zig 获得全新 ELF 链接器,速度飞快 -- Zig got a new ELF linker and it's fast

文章摘要

jacobly0在Zig编程语言的GitHub仓库中提交了一个名为Elf2的拉取请求,旨在从零开始创建一个新的链接器。该项目展示了开发者对Zig生态系统的贡献,并可能为未来的开发提供更高效的链接工具。

文章总结

Elf2:从零开始创建新的链接器

在Zig编程语言的GitHub仓库中,开发者jacobly0提交了一个名为“Elf2”的拉取请求(#25299),旨在从零开始构建一个新的链接器。该链接器的主要目标是提升增量编译的支持,特别是在针对ELF(可执行和可链接格式)目标时,新的链接器已经能够通过所有相关的增量测试。

主要改进: 1. 增量编译支持:新的链接器在增量编译方面表现显著优于旧版本,特别是在处理单行代码修改时,编译速度提升了11倍。 2. 性能提升:与旧链接器相比,新链接器的性能已经足够快,以至于在大多数情况下,禁用代码生成和链接步骤的优化变得不再必要。 3. 默认启用:当使用-fincremental选项并针对ELF目标时,新链接器已成为默认选择。

性能数据对比: - 旧链接器:在构建Zig编译器后,修改单行代码的编译时间分别为754ms和858ms。 - 新链接器:同样的操作,编译时间分别降至73ms和72ms。 - 禁用代码生成和链接:编译时间分别为70ms和69ms,表明新链接器仅带来4%的性能损失。

使用方式: 开发者可以通过命令行选项-fnew-linker或在构建脚本中设置exe.use_new_linker = true来启用新链接器。

总结: 新链接器的引入显著提升了Zig的编译效率,特别是在增量编译场景下,性能提升明显。这一改进使得在大多数情况下,保持代码生成和链接步骤始终启用成为更优的选择。

评论总结

评论摘要生成失败