【特別レポート】32bit Windowsの管理外領域をRAM Diskに使う
このところのメモリ価格の下落から、メインメモリは2GBどころか4GB以上も余裕で搭載できるようになった。2GBのDDR2 DIMMを4枚、計8GB分購入したとしても2万円で十分おつりが来る。とはいえ、32bit OSを使っている限り、OSは約3.5GB以上のメインメモリを認識できず、それ以上のメモリを搭載したとしても無駄になってしまう。64bit OSを利用すればこの問題も解決するが、ドライバの対応やアプリケーションの互換性などに問題があり、使いたくても使えない状況だ。
しかし、32bit OSで認識できないメインメモリ領域を活用できる手法が見つかり、2ちゃんねるのWindows板を中心に話題となっている。その手法とは、「Gavotte Ramdisk」というRAM Disk作成ツールを利用し、メインメモリのOS管理外領域にRAM Diskを作ってしまおうというものだ。
PC Watchの記事で興味深い記事を見つけた。32bit Windowsの管理外領域をRAM Diskに使う方法が2ちゃんねるで公開され話題になっているらしい。
これは素晴らしい。久々のヒットではないだろうか?うちにも相方が使っているXP Proの自作機があるが4GBのメモリを搭載している。このうち実際にOSが認識しているメモリ容量は約3.2GB程である。残りの余った領域は、使われることのないかわいそうな領域として今まで無駄に存在していたわけであるが、この触れられることのなかった領域が遂に有効活用できる日がやってきたらしい。(涙
今時「RAM Disk」という言葉をあまり知っている人はいないかも知れないが、昔はよく使われた機能です。(一般人がパソコンを使わなかった頃w)
メモリーの一部をハードディスクなどの様にディスクの様に利用する技術です。
今はあまり需要がないと思われるので最近はあるのか判りませんが、(多分ついてると思うけど)普通にOSの機能としてRAMディスクのドライバが含まれていました。これをOSに組み込むとRAMディスクが利用できる用になるわけです。
何が便利かっていうと、その読み込みと書き込みの高速性です。メモリーですからハードディスクに読み書きするのとは雲泥の差です。かなりの体感差があるはずです。
ただ、メモリーですのでPCの電源を切ると中身が消えてしまうので使いどころが微妙です。
通常は、ソフトのワークエリアやテンポラリのエリアとして利用します。
また、話が脱線するのでよろしく(*´▽`*)
昔のPCは処理速度も遅くハードディスク(フロッピーに毛が生えたような速度)も遅かったので8MBしかないメモリから涙を呑んで2MBとか4MBとかテンポラリに確保したものです。
これをプログラムのコンパイル用の作業領域とかにすると爆速になったものです。
昔、有る仕事場で特殊な言語での開発を行っていましたが、コンパイルに非常に時間がかかるものでした30分から1時間位コンパイルにかかるわけです。PCのCPUはDX2とかDX4とかPentium100とか66とかそういう時代です。メモリーは4MBとか8MBだったと思います。Windows95が発売されるちょっと前位の話です。兎に角コンパイルに時間が掛かりすぎて気軽にコンパイルと行かないわけです。しかも非常にデスマーチな状況でコンパイル時間の1分1秒が非常に惜しいという状況でした。僕自身はそのプロジェクトに最初からいたわけではなく、デスマーチに突入してから応援部隊として投入されたいわば傭兵だったわけです。
時代背景はというと、汎用機からPCへの移行期でしきりに「クライアントサーバーシステム」とか叫ばれた時代でした。テレビでも三菱とか「アプリコット クライアントサーバーシステム」とかいってCMしていたように思う。しかし、実態はまだOSがWindows3.1の時代でリソースの制限に縛られ直ぐにリソースが足りないとWindows3.1たんに怒られる時代。しかも不安定で直ぐにOSが固まるのはあたりまえの時代www。このリソースの呪縛はその後WIndows95、98、98SE、MEと続きWindows2000、それに続くXPになってやっと開放される。NTは既に3.5や4.0等があったが一般的には普及しなかった。ちなみにWindows NTはまだNTが海のものとも山のものともわからなかった頃 Windows NT 1.1を晴海か何処かのデーターショウで動いているのを見たことが有る。そのときはよくわからなかったが、何故か覚えているのはNTがニュータイプの略称みたいだったからだろうか?w
そういう時代で汎用機の仕事が少なくなくなりつつあり仕事場には汎用機からPCに移ってきたという人がちらほら見かけられた。そういう人たちはWindowsのあまりの不安定さに「絶対にまた汎用機の時代が来る」といっていたのが忘れられない。あれから10年以上経ったがそういう時代は今のところ来ていないが・・・。
また、当時はコンピュータの仕事をしている人でもパソコンを持っている人は少なかった時代で、いわゆる職業プログラムマが多かった時代。「家に帰ってまでパソコンやらね」って言う人が多かった時代です。インターネットも一般には普及していませんでした。まだパソコン通信全盛期というか末期かな。なので、パソコンも仕事で使う以外のことには詳しくないという人も少なくなかった時代です。まだまだ「パソコン持ってる=ヲタク」の時代でした。
話を戻そう。
そういうわけでコンパイルに鬼の様に時間が掛かっていたので困っていたのだが、試しにRAMディスクドライバを組み込んでRAMディスクを確保しそこをコンパイラのワークエリアに割り当ててコンパイルしてみた。
「なにこれw爆速過ぎwww」1時間掛かっていたコンパイルが数分で終わるようになった。その言語は特殊な言語で、(なんていう言語かは伏せておきますがw)その言語は当時流行りだしたオブジェクト指向言語でしたが、実際にはその言語で書くと中では一旦C言語に変換してそこからコンパイルされるという言語でした。w
なので、ディスクアクセスもかなりのものだったのだと思われます。
そして、その仕事場ではRAMディスクををワークエリアにするのが主流になりました。
むしろ今まで何でそうしなかったのかと俺は思ったのだが、
逆に何で早く教えてくれなかったのかと文句をいわれたw。
よく覚えているが、なんて答えたかというと仕事場でみんなの使ってるマシンのメモリが4Mや8Mとかだったのでそこから2Mや4M削ってRAMディスクにしてまともにOSが動くのか不安だったし無茶な話だったからだ。
当時のメモリーの価格はべらぼうだったのでw
でも客先に納期を迫られる中、作業効率優先だったので仕事場のパソコンはメモリ追加用の予算がでて一気にメモリ増設されたり、メモリーがこれ以上増やせない機種は買い換えられたりした。
そういうわけでRAMディスクとは素晴らしいものなのですが(ほんとに?w)
最近ではパソコンの高速化とメモリーの大容量化とですっかりなりを潜めたRAMディスクですが、やはりハードディスクよりはかなり高速なわけです。しかし、通常のメインメモリーを削ってまでRAMディスクを確保する事の有用性は現在あまりありません。メインメモリーは多ければ多いほどいいわけですから、しかし、XP等の32bitOSはメモリーを約3GBまでしか認識しないわけです。昔では考えられない様な大容量メモリー化が急激に進んでこの事実が発覚した時にはみんなショックを受けたわけです。この失われた領域は絶対に利用できないものだと今まで思われて来ました。それが、RAMディスクとして使えるというのですから使わない手はないではないですか?wメインメモリーとしては使えなくても今まで捨てていた領域がRAMディスクとして使えるのですから。
プログラマーなら、コンパイラ等のワークエリアに
通常の利用の人ならテンポラリやブラウザのテンポラリにすればインターネットの閲覧が体感できるほど高速になることが期待できます。
メモリーを8G積んで4GBをRAMディスクとして確保できる人は、フォトショップやイラストレーターなどのワークエリアとして利用するする事で作業が高速化することがかなり期待できます。
動画編集等についてもワークエリアにする事で高速化が期待できます。
兎に角、パソコンの電源を切ったときに消えても問題がないワークエリアにRAMディスクを利用することでパソコンをこれまで以上に快適に利用できる可能性があります。
メモリーが4G以上積んである人は是非是非試してみてください。僕も相方のマシンで試してみようと思います。まーでもご利用は自己責任でw。
現行スレは下の様だ
RAMディスク友の会12
http://pc11.2ch.net/test/read.cgi/win/1210498064/l50
【XPで】 Gavotte Ramdisk 2【4GB超え】
http://pc11.2ch.net/test/read.cgi/win/1210609185/l50
Gavotte Ramdisk まとめWIKI – トップページ
http://www10.atwiki.jp/gavotterd/
タグ : RAMディスク