Posted at

最速の開発環境が欲しい。RamDisk編

開発環境を快適にするためには、SSDより速いRamDiskを構築すべきだ!!


RamDiskとは

メインメモリの一部をストレージのようにドライブとしてマウントする

メモリなのでとても速い

SSDがかなり高速になったので、HDD時代ほどはメリットがないが

SSDの書き換え回数を減らすというメリットもある

しかし、メモリなので電源OFFをするとデータが消える

(たいていのソフトは、データをストレージに保存するオプションがある)

RamDiskソフトにより速度などが違うので何個かためしてみた

環境は Windows10 64ビット。


まず NVMe SSDの速度

NVMe.png


ROG Ramdisk

Max?GB。上限はわからないが、かなり大きなサイズを確保できる

NTFSでの保存も可能

複数ドライブ作成可能

ROK.png

やはりSSDより速い。圧倒的に


Dataram RamDisk

Fat32

Max1GB

その他色々設定

Dataram.png

上記のROG Ramdiskに比べると圧倒的に遅い

ファイルフォーマットの差かもしれないが

しかも1GBまでしか使えない


SoftPerfect

NTFS

Max?GB

複数ドライブ作成可能

永続化をドライブごとに選べる

また、実行中時ドライブサイズを変更可能

SoftPerfect.png

ROG Ramdiskより多少速いし、動的にサイズ変更できるのが素晴らしい!

ので、これを採用する事にした


Buffalo

Max 1344MB

サイズが小さいし、インストールしたらブルースクリーン


その他

色々とインストールしたがROG Ramdisk、SoftPerfectに勝るものがなかった

もっと良いものをみつけたらそれに変更します

結局 SoftPerfectを採用


SoftPerfect

羊マークのあれ

https://www.softperfect.com/products/ramdisk/

使用期間30日。個人利用なら3140円、ビジネスなら5310円だが

古いバージョンでは個人利用は無料

バージョン上がると機能も増えているので、パーツと違い半永久的に使えるので安いかと思う


設定

インストールは普通にインストールする。

RamDiskの内容を毎回バックアップするかどうかでディスクの作り方が違ってくる

保存する場合は イメージの作成と仮想ディスク->イメージの作成 で、

ディスクイメージを作成し、RAMディスクメニューからマウントを行う

保存が不要な場合は直接RAMディスクメニューからマウントを行う

起動時にマウントする場合は、RAMディスクメニューの起動時にマウントされるRAMディスク で作成

SnapCrab_RAMディスクの追加編集_2019-7-24_7-34-3_No-00.png

RamDiskの容量を決める。用途次第だがあとで変更可能なので適当でも大丈夫。

最低でも500MBぐらいほしいかなあ? 私は4GBぐらいにしている

色々設定はあるけど、普通に使うにはこれで十分


キャッシュ化


Temp

WindowsのTempをRamDiskにするのは定番だ

環境変数変更するなり、ショートカット張るなり好きにしよう

基本的に最近のインストーラーはTempに値を保持しないはずなので、このデータはイメージ保存必要ない


ブラウザキャッシュ

ブラウザのHTMLキャッシュをRamDiskに入れるのも定番だ

やり方は色々なページで書かれている

わたしはシンボリックリンクをRamDiskに張った

このデータはイメージ保存必要ない


ダウンロード

どうしてもダウンロードがたまってしまう私・・・

ダウンロードフォルダをRamDiskにしてイメージ保存をしなければ、毎回きえてくれるぞ!

後でほしいものだけコピーしている

メリットとしては、Zip圧縮されたものをオンメモリで解答出来る事だ

速度メリットというよりはSSDの書き込み寿命のためというか。

もちろん大きなファイルのダウンロードは他のドライブに入れるか、領域を大きくする必要がある

あえてイメージ保存しない


動画や画像ソフトのTemp

これもわかりやすい。ただしある程度の大きさが必要である

このデータはイメージ保存必要ない


ビルド時の中間ファイル

C++とかをビルドするときの中間ファイルをRamDiskにすることもあったが

今は面倒なので行ってない。。

が、ソース丸ごとRamDiskに入れてコンパイルする事はある

例えばBoostとか大きい奴は 8GBぐらいのRamDiskで丸っとビルドする事がある


Docker等

DockerとかをRamDisk上で実行させると便利である

例えばテストだったりRamDisk上で全部完結されされれば・・・

とても有効ではないかと思うが、今はDocker on Ramdiskの研究中!


その他

便利な使い方があったら教えてください!!