Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

開発環境を快適にするためには、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の研究中!

その他

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

YukiMiyatake
C++が喋れる ゲームプログラマ インフラ、サーバ、UNITY、ゲームエンジンが最近多いな・・ MONA: MPpuEnmqDYBCxSZyG5cBDt6UWtXczmRmkn BTC: 13JpgsF3n6K2WhjEeUuUUqS7V71gWdFx56 BCH: 18q6rfi9ynyTgynrB8tJ2eSDLPQM32RZk5
http://murasame-labo.hatenablog.com/
murasame
ゲーム、エンタメ、サーバインフラ等 少人数で技術力の高い仕事をする会社
http://murasame-lab.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away