2022 年 39 巻 3 号 p. 3_17-3_32
C++はコンパイラ,ウェブブラウザエンジンなど様々なシステムソフトウェアを開発するプログラミング言語として用いられている.しかし,近年システムソフトウェアが大規模化にするにつれて C++プロジェクトのビルド時間が長くなってきていることが問題となっている.そこで本稿では C++プロジェクトのビルドを高速化する手段として有効である3つの手段 (Unity Builds, Zapcc, そして C++ Modules) について解説をする.まず,実際に大規模な C++プロジェクトにおけるビルド時間の現状について紹介し,そのビルド時間のブレイクダウンを示すことで C++のビルドにおいてどの処理がボトルネックになっているか明らかにする.そして各手法のアプローチ・実装について紹介し,適用後にどの程度改善されるかを示す.また,各手法の課題についても議論する.