library化する並列コンパイルする分散コンパイルするいいパソコンを使うC++のビルドをちょっとでも高速化したかったので、どうすれば早くなるのかを調べたのでまとめました。どれか一つをやるというよりかは、複数の手法を組み合わせていくのがいいと思います。キャッシュを使うccacheのように、コンパイル結果をキャッシュしておくソフトを使うことで、2回目以降のビルドは差分だけをコンパイルし直すため早くなります。いっても、多分使わない方が珍しいと思いますが。不要なincludeを減らすことでコンパイル時間の短縮化と、キャッシュを最大限活用することができます。本体のコンパイル時間が短縮されます。簡単に早くなりますが、ライブラリの切り出し方を工夫しないと効果が無い場合があります。Libraryの場合はリンクが必要なので、リンク時間は減らせませんが、コンパイル時間は省略できるため大幅に早くなります。Libraryはリンク時間が不要になりますが、その分実際の実行時に時間がかかります。代わりに、ライブラリの部分だけ入れ換えるといったことができます。並列コンパイルするmakeにはjオプションがあり、指定した数だけ並列実行されます。多くしすぎると逆効果らしく、一般的にはコア数×2ぐらいを指定すると良いそうです。分散コンパイルするdistcc等を使って分散コンパイルをすることで、劇的にコンパイル時間を短くできます。́・_・`)いいパソコンを使う当たり前ですが、メモリ、CPU、SSDの性能を上げると早くなります。高いPCはコスパが悪いので、他の手法と組み合わせて上手い具合に良いところを見つけてください。ota42yC++/Ruby/RoR/golang/rust/flutter。