mold: 並列リンカがリンク時間を最大112倍高速化

mold: A Parallel Linker

mold: 並列リンカがリンク時間を最大112倍高速化

ソフトウェアビルドの最終段階であるリンクは、大規模なC++プログラムでは依然としてボトルネックとなっています。既存のリンカは限られた並列性しか活かせず、CPUコアの多くがアイドル状態です。本論文では、Unix/Linux向けリンカ「mold」を紹介します。moldはリンク処理全体に体系的にデータ並列性を適用し、シンボル解決とアーカイブ処理の絡み合いなど、既存リンカのスケーラビリティを阻む構造的制約を、クリーンな設計で切り離すことで克服します。実際の大規模プログラムでは、マルチギガバイトのデバッグバイナリを数秒(多くの場合1秒未満)でリンクし、最先端のlldリンカより2.4〜16.1倍、従来のGNU ldより最大112倍高速です。アブレーション研究により、高速化は単一の最適化によるものではなく、全パスの並列化の累積効果であることが示されました。

moldは、マルチギガバイトのデバッグバイナリを数秒で、しばしば1秒未満でリンクし、最先端のlldリンカより2.4〜16.1倍、従来のGNU ldより最大112倍高速です。
  1. gabeochoa

    Ruiの古いツイートだけど、最近のzigのビデオで見かけて、その考え方がとても気に入った:

    (https://x.com/rui314/status/1560277403787997185)

    > 私の戦略は、コモンズの価値を例えば100上げて、その見返りとして1を得るというものだ。だから、辛抱してほしい。moldを無料で使いたいなら、ただ使えばいい。これが私のオープンソースビジネス戦略だ。

    MoldとRuiの幸運を祈っている。

  2. dochtman

    Wildは現時点でmoldよりもかなり速い:

    https://github.com/wild-linker/wild

    (ベンチマークはREADMEにあります。)

  3. lrvick

    私たちはStagex Linuxディストリビューションでデフォルトのリンカとしてmoldを使っている。それによって全体のビルド時間が数時間短縮された。

この日のほかの記事

2026-08-26