リンク時最適化(LTO):コンパイラ最適化の次のレベル?

2025-05-21
リンク時最適化(LTO):コンパイラ最適化の次のレベル?

この記事では、リンク時最適化(LTO)という技術について考察しています。LTOは、リンク段階で最適化を行うことでプログラムのパフォーマンスを向上させる技術です。従来のコンパイラは個々のファイル内で最適化を行うのに対し、LTOは複数のファイルにまたがってより包括的な最適化(関数インライン化やコードの局所性の向上など)を行うことができます。LTOは大きなパフォーマンス向上をもたらす可能性がありますが(ProjectXプロジェクトのテストでは実行時間が9.2%短縮され、バイナリサイズが平均20%減少)、コンパイルとリンクに時間がかかり、より多くのメモリを必要とするという欠点もあります。著者はProjectXとffmpegの2つのプロジェクトにおける実験結果を比較することで、LTOの長所と短所を明らかにし、積極的に速度最適化されていないプロジェクトではLTOを試してみることを提案しています。最終的なパフォーマンス向上はプロジェクト固有であると結論づけています。