高速リンカー「mold」の初の安定版リリースとなる「mold 1.0」が公開された。Linuxで主にデフォルト採用されているGNUリンカーの代替プログラムとして使用できるリンカーで、特に大規模バイナリのリンク時間が高速という特徴がある。
moldの開発者はLLVMのリンカーであるLLVM lldの元開発者であり、アルゴリズムとデータ構造を工夫することで、GNUのリンカーであるGNU goldやLLVMのリンカーであるLLVM lldよりも高速な動作を実現している。
mold 1.0は次のページから取得できる。
moldの動作が高速である理由は、次のページに情報がまとまっている。
掲載されているパフォーマンス比較によれば、1.64GiBから3.18GiBまでのリンク時間が22倍から24倍ほど高速化している。
Program (linker output size) | GNU gold | LLVM lld | mold |
---|---|---|---|
Chrome 96 (1.89 GiB) | 53.86s | 11.74s | 2.21s |
Clang 13 (3.18 GiB) | 64.12s | 5.82s | 2.90s |
Firefox 89 libxul (1.64 GiB) | 32.95s | 6.80s | 1.42s |
GNU goldと比較して桁違いの高速化を実現している理由として、開発者は、効率的なアルゴリズムを採用していることと、工夫されたデータ構造を利用していること、高度に並列化されておりマルチコアの性能を引き出すことができることを挙げている。同じマシンでcpコマンドでコピーを行った場合の2倍ほどの時間まで高速化されており、リンカーとしてかなり高速に動作していることになる。
Linuxディストリビューションがmoldをデフォルトのリンカーとして採用した場合、特にサイズの大きなアプリケーションの起動時間が大幅に高速化される可能性がある。