HeadlinesBriefing favicon HeadlinesBriefing.com

mold:大规模并行链接器

Hacker News •
×

链接是软件构建过程中的关键步骤,它将编译后的目标文件合并为单个可执行文件或共享库。尽管经过数十年的工程努力,链接时间仍然是编辑-编译-调试周期中的重大瓶颈,尤其是对于大型C++程序。现有的链接器利用的并行性有限,在链接过程中大多数CPU核心处于空闲状态。

我们提出了mold,一个Unix/Linux链接器,它在整个链接流程中系统地应用数据并行性。我们首先分析了阻碍现有链接器扩展的架构限制,包括纠缠的符号解析和归档处理,然后展示了如何通过解耦它们的新设计来克服这些限制。

在大型真实程序上,mold在最多几秒内链接多GB的调试二进制文件,通常不到一秒。它比最先进的lld链接器快2.4-16.1倍,比传统的GNU ld快112倍。消融研究表明,没有单一优化占主导地位;加速来自所有遍并行化的累积效应。

关键实体:人物:Rui Ueyama