Visual Studioを動かすためのPCを非常に早く作りたいと思っています。私は、WCFサービス、IISのWebサービスを含む約30のC#プロジェクトを持っています。なので、私にとって「速い」というのは、編集、コンパイル、実行、デバッグのサイクルが速いことを意味しています
自分の目的のためにマシンを作るとき、CPUパワー、メモリ、ドライブ技術への投資のバランスはどうすればいいのでしょうか?
30 Phillip Ngan 2009-09-22
当社の開発チームは非常に高速なハードウェアを使用しています。2010年1月現在、1台の開発マシンにつき$6,000以上
1つのコンポーネントが私たちのためにしてくれた最大の違いは(私たちは一度に1つのものをテストしました)、本当に高速なI/Oを追加して、そのハードウェアにすべてのソースコードを置くことでした。約10種類の構成(VRaptor、SSDなどを使った様々なRAID)を試しましたが、一番良かったのはFusion IOのIOXtremeドライブでした
ドライブ上のフォーマットされたブロックサイズが小さくなればなるほど、ドライバがRAMを大量に「ロック」するので、RAMがたくさん必要になります
不揮発性で、ランダムリードとライトの両方で超高速です。お金を払っても、これ以上速くコンパイルできるリグはありませんでした
私はあなたにアイデアを与えるために、実際に迅速にコンパイルの時間を設定します
OK、すべてのコードを含むマスターソリューションには現在37のプロジェクトがあり、Visual Studioのコードメトリクスの結果によると、合計92,281行の「実行可能な」コードがあります。IDEでC#の開発者設定をDEFAULTにしてコンパイルすると(すべての設定をリロードしただけなので、客観的にデフォルトと比較することができます)、22秒かかります。同じマシンにVelociraptorsを3台RAID 5に入れた場合は29秒かかるので、約24%の増加となります
このテストはCLEAN SOLUTIONとREBUILD SOLUTIONで実行されているので、フルコンパイルされているはずです
皆さんのことは知りませんが、私は小~中程度の変更の後、頻繁にコンパイルしています。おそらく平均して1日に80~100回です。つまり、IOXtremeドライブだけで1日9.3分も節約していることになります。1時間あたり70ドル(私たちの平均的な開発者のレート、大体)で、開発者1人あたりの時間で1日10ドルです。つまり、約90日でペイすることができます。本当に悪くない…彼らはこの時点では無料です
また、私は本当に強く感じています。コンパイル時間が開発者の気を散らす閾値を超えてはいけないということを、決して許されるべきではないと。2分も待たせて…WikiやGoogleやYoutubeで時間を無駄にしている。それは測定するのがはるかに難しいです
リグ全体がこんな感じになってます
Windows 7 Professional 12GB RAM 2x Quad Core Xeons (E5504) @ 2.00 GHz。1台あたり合計8GHz。Highpoint 2320 RAIDコントローラ サーバMemo (モデルは忘れました、すみません) Velociraptors 3x RAID 5、C、D、Eドライブに分割されています。CドライブにはWindows、Dドライブにはプログラム、Eドライブにはユーザデータフォルダが配置されています
皆さんの幸運を祈っています
20 Eric Burcham 2010-06-04
ここにも似たような質問があります。どのPCコンポーネントがVisual Studioのコンパイル時間に最大の影響を与えるか
Visual Studio でビルドを行う際に最大のボトルネックとなるのがディスクドライブです。Visual Studio 2008 では、ビルド中に複数のプロセッサや複数のコアを利用することもできます。私だったら、以下のようにします
- コアI7プラットフォーム
- 6GB以上のRAM
- Windows 7 64ビット(Vistaより速い)
- 高速なソリッドステートドライブです
- ビルド中にアクティブなアンチウイルスソフトウェアが実行されていない!
Further reading:
- スコット・グーのブログ。Tip/Trick: ハードドライブの速度とVisual Studioのパフォーマンス
- MSDN.複数のプロセッサを使用してプロジェクトを構築する
- ZDNetのAdrian Kingsley-Hughes氏のブログ。Windows 7 build 6956 パフォーマンステスト
- スコット・ハンセルマン氏のブログ。並列ビルドとマルチコアCPUを使用したMSBuildでビルドを高速化
- Principled Technologies.ソリッドステートドライブとハードディスクドライブの比較 (pdf)
17 cowgod 2009-09-22
私はDataramのramdriveを使用しています。Visual Studioは私のPCのすべてのコア(8コア)を使用していないので、私がしたことは、私はNTFSでramdriveをフォーマットし、圧縮を有効にすることでした。ソースコードは高い圧縮率を持っているので、2GBのramdriveは少なくとも4GBのストレージを提供します。また、ramdriveの自動保存を有効にすることもできます。この方法では、SSDよりも高速なIOが得られます。しかし、IOがボトルネックではない場合、VSはマルチコアの使用が非常に悪いことに気づくでしょう
3 Amir Rezaei 2011-05-12