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イディオムなども使える
インクルードを減らす¶
「インクルードする=ビルドするソースコード量の増大」なので避けたい
具体的なクラスの実装が必要ない場合はインクルードせずに前方宣言だけで済ませたりできる