RamPhantomEx


最近、パソコンのメモリが異様に安い。1年前の1/5ぐらいの値段になっている。
ドスパラでPATRIOT PSD38G1333KH (DDR3 PC3-10600 4GB 2枚組)が7,770円。


これを2セット買えば、一気に4GB×4本=16GBだ。たった15,540円で16GB!!!


しかし、メモリだけあっても使い道に困る。
これで何かに有効利用できないかと考えていた。


そうこうしているうちにRamDiskユーティリティであるRamPhantom7(IO-DATA製)の後継で、RamPhantomExというソフトが出た。
(→ http://www.iodata.jp/product/soft/speed/ramphantomex/ )


私のなかでIO-DATAと言えばブルースクリーンの代名詞だ。いつも質の悪いドライバを出してユーザーを泣かせる。


とりあえず、RamPhantomEx LE(IO-DATA製のメモリを買った人にだけ無償でダウンロードできる体験版)で試す。


まず仮想環境を用意。
・マシン = Corei7 860 2.8GHz
・host OS = Windows 7(x64)
・仮想化ソフト = VMWare Workstation7
・guest OS = Windows 7(x64)


256MBのRAMDiskを作って、CrystalDiskMark 3.0.1でテスト。


↓こんなん出ました。


仮想環境下でこれだけ出ればまずは満足。SSDより一桁速い。


これなら、製品版を購入してもいいかも知れない。本当はIO-DATAの製品はなるべく買いたくないのでVSuite Ramdisk(→ http://www.romexsoftware.com/en-us/index.html )のほうが欲しいのだけど、値段が違いすぎる…。


あとRamPhantomExには、仮想リンク機能があるので(mklink〜フォルダ丸ごとRAM Disk上に移動させる 手順を省力化してくれる)、Visual Studio 2010とか、アセンブリキャッシュとか、開発のときに頻繁にアクセスするフォルダを丸ごとRAM Diskに移動させておけば開発のターンアラウンドが短くなっていいのではないかと思う。


システムフォルダとか下手にmklinkしてRAM Diskに逃がすとOSが起動しなくなったりするけど、まあそこはVMWareの仮想環境下なので何かあればロールバックすればいいだけかなと言う…。


それでまあ、仮想環境下でもこれだけ速いRAM Diskがあれば、HDDの読み書きで待たされていたような作業は快適に出来るようになると思う。開発環境とか特に仮想環境下に構築してしまえば、ロールバックしたりスナップショットを取れたりしてすこぶる便利だ。


■ 追記


VSuite Ramdiskの体験版を同じ環境にインストールして測定してみました。


RamPhantomExより1割ぐらい速い。これでRamPhantomExのような仮想リンク機能があればいいのだが…。


■ 追記その2


RAMPhantomExを購入したので開発環境がどの程度快適になるかやってみた。


ゲストOSに6GBのメモリを割り当てた。ゲストOSを立ち上げ、6GBのうちの2GBをRAMPhantomExに割り当てて、VisualStudio2010関連のフォルダをRAMPhantomExのRAM Diskに逃がした。

C:\Windows\Temp
C:\Windows\Microsoft.NET\assembly
C:\Users\[ユーザー名]\AppData\Local\Temp\Temporary ASP.NET Files\
C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging\
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\
(以上の合計は1.7GB弱程度)


そのあと、Visual StudioのプロジェクトフォルダもRAM Diskに逃がした。


それでリビルド〜実行に15秒ぐらいかかっていたVisual Studioのプロジェクトをこの環境でリビルド〜実行してみると2,3秒ぐらいで完了するようになった。すごく気持ちがいい。仮想環境下なのに、通常環境 + SSDより快適だと思う。これならば仮想環境をメイン環境として使っていける。


RAMPhantomEx購入前に、アンチウイルスソフトと併用すると動作不安定というレビューをいくつか見たが、私が使った範囲(仮想環境 + 64-bit環境 + アンチウイルスソフト無し)では特に問題は無かった。


今回値下がりが激しいのは4GBのメモリモジュールだが、8GBメモリモジュールが安くなってきたら、8GB×6本 = 48GBを載せて、ゲストOSまるごとRAM Disk上に置いて動かしてみたい。


そうそう。VMWare + RAMPhantomExを使う上でいくつか注意点を。


私はDropboxのフォルダ上にVisual Studioのプロジェクトを置いているのだが、RAMPhantomExで仮想リンクを作成すると、そのフォルダをまるごと [フォルダ名]_Backup というフォルダにコピーされる。


電源リセットなどでRAM Diskの中身が吹っ飛んだときのために備えているのだとは思うが、Dropboxのフォルダ内で勝手にそんなことをされるといい迷惑である。まあ、これは仕方ないと思って諦めた。


あとProcess Monitorでアクセスしているファイルを調べて、不要なサービスなら停止させたほうがいい。VMWare内のDisk I/O自体は普通のHDDの半分ぐらいの速度しかでない(& CPU負荷も多少ある)ので、ともかくDiskアクセスを極力減らすに超したことはない。


[参考]
第14回 Windows 7チューニング術(後編)
2.不要なサービスを止めて性能向上
http://www.atmarkit.co.jp/fwin2k/win7/14win7tune02/14win7tune02_02.html