Visual Studioをすばやく実行できるPCを構築したいと考えています。 WCFサービスを含む約30のC#プロジェクトがあり、IIS Webサービスです。そのため、私にとっては、編集、コンパイル、実行、デバッグのサイクルが高速であることを意味します。
目的に応じてマシンを構築する場合、CPUパワー、メモリ、ドライブ技術への投資のバランスをどのようにとればよいですか?
私たちの開発チームは非常に高速なハードウェアを使用しています... 2010年1月現在、開発マシン1台あたり$ 6,000以上。
1つのコンポーネント(一度に1つずつテストしました)のために作られた最大の違いは、非常に高速なI/Oを追加し、すべてのソースコードをそのハードウェアに配置したことです。約10の異なる構成(VRaptors、SSDなどを備えたさまざまなRAID)を試してみましたが、私たちが思いついた最高のアイテムは、Fusion IOのIOXtremeドライブでした。
http://www.fusionio.com/products/ioxtreme/
多くのRAMドライバが「ロック」するため、RAM大量の場合、ドライブ上のフォーマット済みブロックサイズが小さいほど必要になります。
これらの不良少年は不揮発性であり、ランダムな読み取りと書き込みの両方で超高速です。お金のために、リグをより速くコンパイルすることができませんでした。
私はあなたにアイデアを与えるためにコンパイルを実際にすぐに時間を計ります...
OK、現在すべてのコードを含むマスターソリューションには37のプロジェクトがあり、Visual Studioコードメトリックの結果によると、合計92,281行の「実行可能」コードがあります。 IDEでDEFAULT C#開発者設定を使用してコンパイルする(すべての設定をリロードするだけで、必要に応じてデフォルトと客観的に比較できるようにする)のに22秒かかります。RAID5の3つのVelociraptorを備えた同じマシン上29秒かかるため、約24%増加します。
このテストは、CLEAN SOLUTIONに続いてREBUILD SOLUTIONを使用して実行されたため、完全なコンパイルである必要があります。
皆さんのことは知りませんが、小さな変更から中程度の変更の後に頻繁にコンパイルします。おそらく1日あたり平均80〜100回です。つまり、IOXtremeドライブだけで1日あたり9.3分節約できます。 1時間あたり$ 70(おおよその平均開発レート)では、開発者あたり1日あたり$ 10です。だから、それが元に戻るのに約90日かかります。本当に悪くない...彼らはこの時点で無料です。
また、コンパイル時間は開発者の注意散漫のしきい値を超えることは絶対に許されないことを強く感じています。 2分待ってください... Wiki、Google、またはYouTubeで時間を無駄にしています。それは測定するのがずっと難しいです。
OK、リグ全体は次のようになります。
Windows 7 Professional 12GB RAM 2x Quad Core Xeons(E5504)@ 2.00 GHz。合計マシンあたり8GHz。Highpoint2320 RAIDコントローラーサーバーモボ(モデルを忘れて申し訳ありません)RAID 5の3xベロシラプター、C、D、およびEドライブに分割されます。C上のWindows、D上のプログラム、E上のユーザーデータフォルダー。IOドライブFとしてのXtremeドライブ。すべてのコード(当社およびサードパーティのDLL)ドライブFにあります。
幸運を祈ります!
同様の質問がここにあります: どのPCコンポーネントがVisual Studioのコンパイル時間に最大の影響を与えるか 。
Visual Studioでビルドを行う場合、最大のボトルネックはディスクドライブです。 Visual Studio 2008以降、ビルド中に複数のプロセッサまたは複数のコアを利用することもできます。それが私なら、次のようにします。
参考文献:
Dataram のramdriveを使用します。 Visual StudioはすべてのPCコア(8コア)を使用しないため、ramdriveをNTFSでフォーマットし、圧縮をアクティブ化しましたソースコード圧縮率が高いため、2 GBのRAMドライブは少なくとも4 GBのストレージを提供します。ラムドライブの自動保存を有効にすることもできます!この方法では、SSDよりもさらに高速なIOが得られます。ただし、IOがボトルネックではない場合、VSはマルチコアの使用において非常に貧弱です。