C++|ビルド時間短縮
並列ビルド¶
make
なら-j<N>
オプションをつけるとNスレッドでビルドしてくれる
直接make
をたたけない場合でもexport MAKEFLAGS="-j<N>"
で環境変数に設定することでバックエンドのmake
に指示できる
ninja
の場合はexport NINJAJOBS=<N>
で指示できる
バックエンドをninja
にする¶
make
よりかなり早いらしい
cmake
なら-G ninja
オプションをつけるとバックエンドをninja
にすることができる
リンカーにmoldを使う¶
結構早いらしい
ccacheを使う¶
2回目以降をキャッシュを有効活用して爆速にしてくれる
ヘッダー記述量を減らす¶
ヘッダーはインクルードしているソースファイルすべてに展開されるため、実装をソースファイルに移動するだけでかなりのビルド時間削減が期待できる
pimplイディオムなども使える
インクルードを減らす¶
「インクルードする=ビルドするソースコード量の増大」なので避けたい
具体的なクラスの実装が必要ない場合はインクルードせずに前方宣言だけで済ませたりできる