RAMディスクでVisual Studioはどこまで速くなるのか?


私の普段使っているマシンはメモリを4GB載せているので、32bit版のVistaのだと1GB丸々眠っている。


これを有効活用しようと、「いまさらRAMDISK」(→ http://d.hatena.ne.jp/yaneurao/20090704 )で書いたようにRamPhantom3 LEを導入してみたのだが、Visual Studio 2008(以下VSと記する)の使い勝手があまり改善されない。


私は、VSは主にASP.NETでの開発に使っているので、VSのプロジェクト丸ごとRAMディスクに配置してみたが、Webフォーム(aspxファイル)のデザインビューを開いたときのもっさり感(3,4秒かかる)がほとんど改善されない。参照している.NET Framework関係のライブラリを全部RAMディスクに置いてみたがそれでもほとんど改善されず…。


このもっさり感をなんとかしないと、イライラが募るばかりである。そこで、アクセスしているファイルをモニタリングしてやろうと、FileMonを起動したら、VistaではProcess Monitor(→ http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx )を使えとエラーメッセージが出て立ち上がらない。そうか…。VistaではFileMonは使えないのか。


仕方ないので、言われるままにProcess Monitorをインストールして、Webフォームを表示させたときにどのファイルをアクセスしているのか確認する。


ああ、IEのキャッシュフォルダ、結構アクセスしてるなぁ…。さっそくRamPhantom3 LEで、IEのキャッシュをRAMディスク上に配置する設定を有効にすると体感的には少し改善された気がする。


あとは…、C:\Users\[ユーザー名]\AppData\Local\Microsoft\VisualStudio\9.0\ProjectAssembliesと、C:\Program Files\Reference Assemblies\Microsoft\Frameworkにアクセスしてるので、これをjunctionを作ってRAMディスクに逃がす。(Vistaならmklinkというコマンドが標準で使えて、これでjunctionを作れる。→ http://www.atmarkit.co.jp/fwin2k/win2ktips/991fjunction/fjunction.html )

mklink /J "C:\Users\[ユーザー名]\AppData\Local\Microsoft\VisualStudio\9.0\ProjectAssemblies" X:\ProjectAssemblies
mklink /J "C:\Program Files\Reference Assemblies\Microsoft\Framework" X:\Framework

これで、デザインビューは(2度目以降は)1秒ぐらいで開くようになった。


あとは、GACとVSのReflectedSchemasというフォルダ(これは私の環境で3GB程度あった)もRAMディスクに逃がせると良いのだが、前者は危険なのでやめておくことにした。後者は、1GBに収まらないので諦めた。


以上、あまり役に立たないレポートだが、個人的にはイライラの元が解消されたので気分的にはすっきりした。


どこまで速くなるのか試してみたくなったのでGACなどもRAMディスクに放り込んでみた。

mklink /J "C:\Program Files\Microsoft Visual Studio 9.0\Common7" "X:\VSCache\Common7"
mklink /J "C:\Windows\Microsoft.NET\Framework\v2.0.50727" "X:\v2.0.50727"
mklink /J "C:\Windows\assembly\GAC_32" "X:\VSCache\GAC_32"
mklink /J "C:\Windows\assembly\GAC_MSIL" "X:\VSCache\GAC_MSIL"

一度目にデザインビューを開いたときの時間はあまり改善されず。2度目以降は0.5秒ぐらいで開くようになった。プロジェクトのビルド→実行→ブラウザで表示される までの時間がずいぶん短縮された。ターンアラウンドタイムが改善されるのは大歓迎。


【結論】
RAMディスク × Process Monitor × mklink でイライラを改善!