コンパイル時間に最も大きな影響を与えるPC仕様はどれですか?ディスク?クロック速度? CPUコアの数は?
Scott Guはまた、構築速度に影響を与えるものについて投稿し、主に I/O ハードディスクなどのリソースを指摘しました。
私が見つけた最大の違いを生む要因は、物理的な要因ではなく、ソフトウェアの要因です。どのアンチウイルスをインストールしましたか?
一部のウイルス対策製品は、ソフトウェア開発をうまく処理しません。これらのアプリケーションファイルはすべて書き換えられているのを確認し、不正行為の疑いがあり、毎回すべてのファイルを再スキャンします。
( https://stackoverflow.com/questions/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 を参照してください多くのための。)
一方、既存のマシンのパフォーマンスを向上させたい場合は、利用可能なメモリを最大限に活用してすぐに勝つことができます。
これが いくつかの素晴らしい研究 MSBUildに複数のCPUを使用することについてのScottHanselmanによるものです。スピードアップはかなり劇的です。
編集:ただし、Visual Studioを適切に使用するには、十分なRAMが必要であることに注意してください。 :)
かなりのサイズのC++コードベースでの私の個人的な経験:
プロセッサー:Pentium 4 HT 3.06 GHz
メモリ:1 GB DDR RAM(PC 2100、つまり333 MHz)
ディスク:7200 RPMハードドライブ(メモリが機能する場合はUDMA 100)
コンパイル時間:50分
プロセッサー:1.6GHzのCorei7 720QM(8つの論理プロセッサー)、すべてのコアがアクティブな場合は1.73GHzにターボブースト
メモリ:8 GB DDR3 RAM at 1066 MHz
ディスク:7200 RPMハードドライブ(SATA 2)
コンパイル時間:4分( / MP を使用)
結論:プロセッサが多いほど、クロック速度が比較的遅い場合でもメリットがあります。 SSDはさらに時間を改善しますが、コンパイルメッセージの観察から、30秒以上改善されるとは思えません。
C++プログラムをビルドする場合、何よりも重要な要素は構造的です。ソースコードが垂直方向に大きく構造化されている場合、ビルド時間、特にインクリメンタルビルドに壊滅的な影響を及ぼします。クアッドコアXeonを劇的に改善するために、プロジェクトのいくつかの部分をローカルで再構築しました。 18か月後、彼ら(プロジェクトを所有している人々)は、Core i7マシンでも、私の実時間のビルド時間に合わせることができません。
ソフトウェアレイアウトの効果(プラスまたはマイナス)は、チームのすべてのメンバーと、チームが実行するすべてのビルドに広がります。
Xoreax IncrediBuild は、私が作業するコンパイル時間を大幅に改善した分散ビルドシステムです。 (残念ながら、リンク時間はまだかなり長く、特にプログラム全体の最適化とリンク時間コード生成を使用したリリースビルドですが、それは予想されることです。)