質問: 現在比較的巨大な社内C++プロジェクトをメンテナンスしておりますが、boostやtemplateメタプログラミングを駆使した仕様になっており、コンパイル時間が増大し、業務効率が著しく低下する状況に陥っています。 ヘッダ依存性の縮小やpchの利用、その他ググれば様々なコンパイル時間短縮の方法は記載されていますが、すでに存在する巨大なプロジェクトのどこがボトルネックになっているか検討する指針として、コンパイルプロセスに対するプロファイラや統計情報を取得するオプションがあればご教示いただきたく存じます。 使用している環境は windows7 visual studio 2015 professional edition sp3 です。 よろしくお願いいたします。
回答: 非公開のコンパイルオプション・リンクオプションが用意されています。 ``` cl.exe /Bt link.exe /time ``` を使用することで所要時間を確認することができます。あくまで非公開オプションですので、今後仕様変更等の可能性を認識した上でお試しください。 いくつかおおすすめを * コンパイルの高速化 + PCHによるヘッダーファイル解析のスキップ + `/MP`オプションによる.cppファイルの並列コンパイル + `/Zc:inline`オプションによるインライン展開され不要になるデバッグシンボルの除去 * リンクの高速化 + `/INCREMENTAL`オプションによるインクリメンタルリンク + `/LTCG:INCREMENTAL`オプションによるリンク時コード生成のインクリメンタルリンク + `/DEBUG:FASTLINK`オプションによるデバッグシンボルファイルの生成高速化(VS2015 SP1以降)