3

製品のビルド時間を改善しようとしています。継続的インテグレーションを使用しており、ビルドの実行に 2 時間かかっています。

NANT のタイミングを調べたところ、本来よりも遅い場所がたくさんありましたが、飛び出したのは Visual C++ プロジェクトの x64 ビルドです。同じコードの x86 ビルドと比較したタイミングの例を次に示します。

Win32 のリリース: 8' 49" x64 のリリース: 41' 8"

x64 は約 5 倍遅いです。繰り返しますが、これはまったく同じコードです。

x86 と x64 の間でこの種のビルド時間の不一致を経験した人はいますか? ギャップを埋めるための提案はありますか?

注: Xoreax 分散ビルドや TeamCity 同時ビルドなど、ビルド パフォーマンスを全体的に向上させるツールがあることは認識しており、それらの両方も調査するつもりですが、何らかの方法で取得する必要があると感じずにはいられません。 x64 ビルドは、サード パーティのツールに頼ることなく元に戻ります。

4

2 に答える 2

2

プロジェクトのビルド設定が両方で同じかどうかを確認します。x64 を選択すると、VS は基本的に新しいプロジェクト設定をロードし、それらはまったく異なるものになる可能性があります。たとえば、x64 でインクリメンタル ビルドが有効になっているかどうかを確認します。

于 2009-10-30T21:20:18.513 に答える
0

わかりませんが、コード ジェネレーター全体が x64 用に書き直されても驚かないでしょう。テスト ビルドを実行し、プロセス エクスプローラーを使用してコンパイラが取り込む DLL を確認すると、2 つの異なるターゲット用にビルドするときに、コンパイラがまったく異なるバイナリを使用しているかどうかを確認できます。x64 バックエンドは管理された .NET アプリであるのに対し、x86 バックエンドは古い学校のネイティブであることに気付くかもしれません。推測です。おそらくそうではありません。プロセス エクスプローラーを実行している間に、2 つの CPU/ディスク/RAM の使用状況を調査できます。

于 2009-10-30T23:17:59.163 に答える