約 50 個のソース ファイルで構成される C++/CLI アセンブリがあります。このアセンブリのコードは、多数の C++ ライブラリに静的にリンクして、さまざまな「重労働」タイプのタスクを実行します。
このアセンブリをビルドするために Visual Studio 8 (2005) SP1 を使用しています。
「プロジェクトのみ」->「リビルドのみ」を介してこのアセンブリだけを (依存関係などなしで) ビルドすると、まともなデュアルコア マシンで約 4.5 分かかります。以下は、おおよその時間で注釈が付けられた簡略化されたビルド出力です。
Compiling...
(file 0)
(file 1)
...
(file N) // About 2 min total to compile all files
Linking... // About 12s
Generating Code // 42s
Finished Generating Code // < 1s
Embedding Manifest // < 1s
Generating Code // 30s
Finished Generating Code
(15 seconds of nothing)
Done
このアセンブリのビルドに時間がかかる理由のデバッグを開始するにはどうすればよいですか? コンパイル時間とリンク時間は、それほど大きくはありませんが、おそらくこのサイズのプロジェクトに期待できる時間です。私が懸念しているのは、2 つの「コード生成」ステップがあり、それぞれが他のほとんどのプロジェクトよりもはるかに時間がかかるという事実です。
私の最初の推測では、これはアセンブリにリンクされているアンマネージ コードの量に関係しているということでした。しかし、同じくらい多くのネイティブ コードを使用するマネージ アプリケーション プロジェクトがいくつかあり、ビルド時間は非常に妥当です。
非常に長い時間がかかる2つの「コード生成」ステップの原因を正確に知っている人はいますか? 不足しているプロジェクト設定はありますか?