The tab browser
recommendation
committee
タブブラウザ推奨委員会

RAMディスクで高速化


現在主流になっているブラウザ、IE、Netscape(含むMozilla)、Operaには全てディスクキャッシュ機能が存在している。これは一度訪れたページをハードディスクに保存し、再度ページを訪れたときにページが更新されているかチェックし、更新されていなかった場合、Web上からデータを取り寄せるのではなく、ハードディスク内のデータを使うことでレスポンスを向上させる機能である。


ネットからのデータ転送速度<HDからの転送速度

図式で示すとこうなる。無論これは単純な式で、ネットワークとの応答速度や、ハードディスク内のインデックスを検索し、ハードディスク内に散らばったデータをシークして読み出す速度などを考慮にいれなければいけないのだが。

さて、Operaを使ったことがあるだろうか? IEコンポーネントを使用したタブブラウザと比べて、一度閲覧したページでの戻る、進むが異常に高速なことに気づく。これはOperaのメモリキャッシュ機能に依るもので、訪れたページをメモリ上に保存してそれを再利用している。勿論、IEと同じように正規のディスクキャッシュも存在しているが、メモリキャッシュ機能をオフにすると、途端に戻る、進むがIE並に遅くなるのを見れば、この機能の有用性は明らかであろう。


ネットからのデータ転送速度<HDからの転送速度<メモリからの転送速度
ただし、戻る、進むでのはページ移動では更新の確認はしていないと思われる。

メモリ内からデータを引き出す場合、ハードディスクと違い物理的に動く機構が全く無く、その転送速度は桁違いに速い。Operaの高速さの一因はここにあるといえるだろう。


RAMディスクの導入


では、IEコンポーネントを使用したタブブラウザでも同じようにメモリ上にキャッシュ出来ないだろうか?

出来る。それはRAMディスク、またはRAMドライブを使うことである。これはメモリ上に仮想的なドライブを作るものであり、ここにディスクキャッシュを置くことでレスポンスの向上を図ることが出来る。

RAMディスクを可能にするソフトウェアは幾つかある、またWin98以前ではRamdrive.sysによって一応RAMディスクの作成は可能だが、これには色々と制限がある。そこで、今回はフリーソフトのERAM For Windowsを使用する。使用法、インストールは添付されたドキュメントファイルを見ていただきたい。この時RAMディスクの能力を最大限引き出すため、Win9x系では固定領域サイズ、NT系ではOS管理:固定ページ領域で30MBほども指定すればいいだろう。

スクリーンショット予定地

次はIEの側での設定である。インターネットオプション>全般から、まずIEの一時ファイルを削除。次に一時ファイルの設定>フォルダの移動 から、作成したRAMディスクを指定する。一時ファイルのサイズは作成したRAMディスク一杯使用して構わないだろう。

スクリーンショット予定地

これで作業は完了である。僅かながらでもブラウジングが軽快になっただろうか?


ネットからのデータ転送速度<RAMディスクからの転送速度≒メモリからの転送速度


RAMディスクの問題点


IEの一時ファイルをRAMディスク上に置くことに、なにかしら問題はあるだろうか?
ある、たくさんある。まずOSが扱うメインメモリが圧迫される。メモリ上にで〜んと数十MBもの領域が常に確保されるのだから当たり前だろう。よってWin9x系では192MB以上の、NT系では384MB以上のメモリを積んでる人にだけ薦めたい。

またRAMディスクはメモリ上に配置されるため、当然、OSの終了によって消えてしまう。キャッシュの中から画像などのデータを拾い出したいのなら、OSを終了させる前に行わなくてはならない。これまた当然のことだが、OSを起動するたびにキャッシュは真っ新になるのだから、以前訪れたページの表示が速くなるというキャッシュ機能の一部は無効になる。OSの再起動が少なく、かつ長時間ネットに繋いでいる人にこそ意味がある。

本当に速くなるのだろうか?
微妙だ。実はOperaのメモリキャッシュ機能ほどには実感出来ないと思われる。理論的には遅いハードディスクに代えて、アクセスの速いメモリを使うのだから、速くなるはずではある。しかし、OSのメインメモリは圧迫されるし、RAMディスクの読み書きにもかなりのCPUパワーを必要とするため、劇的な効果は期待できない

加えてIEは一時ファイルの利用が下手だ、ということも挙げられる。キャッシュに確かにあるはずのページなのにWeb上に読みに行く、ということが頻繁にある。無論、更新されているかどうかを確認する必要はあるのだが。この場合、キャッシュ自体がいくら速くても無駄ということになる。スタンドアローン環境でもBlackJumboDogなどのProxyサーバーを敢えて間に通すことで、このサーバーのキャッシュ機能に期待する、という使い方もあるかも。

また、高速回線を使用している場合、ネットからのデータ転送速度が充分に速く、キャッシュがあまり重視されない時代になりつつある。

ネットからのデータ転送速度≒HDからの転送速度<メモリからの転送速度

こうなりつつあるのだ。現状ではハードディスクからの転送速度のほうがまだまだ速いのだが、キャッシュのインデックスを検索する時間やディスク内に散らばったキャッシュの断片から再構築するより、ネットから新しく読み直した方が速い、ということがままある。そのためADSL導入後はIEの一時ファイルは最小の1MBにしよう、という話もある。とはいえ、この場合でもまだメモリからの転送速度の方が速いのだから、RAMディスクは無駄ではない。

さらにいうなら、某巨大掲示板巡り等、常に最新の情報にアクセスするために、キャッシュはあまり重要ではない、という人も居るだろう。キャッシュはそもそも、「更新されていないページを再度見るとき」にだけ有用なのだから。常に新しい投稿がなされる掲示板では殆ど意味のない機能ではある。

またそれ以外にも、RAMディスク導入のせいでドライブレターがずれる場合がある。上記のERAM For WindowsはデフォルトではZドライブに入るので大丈夫だとは思うが。ドライブレターがずれることで仮想CDとパケットライトソフトが衝突し、マイコンピュータフォルダを開いただけでフリーズ、というトラブルが起きる可能性があるので注意されたい。


実は・・


実はここまで書いてきて、以上の駄文が全て無駄だったことに気が付いた。

Windowsエラー画面集 AR RAM Disk
世界のブロードバンドコンテンツ集 RAMディスクで高速化

初めからこれらのサイトを紹介しておけばよかったわけだな。浪費された時間が完全に無駄だったと思いたくないので、まぁコンテンツには置いておくか。もっともスクリーンショット予定地は空白のままかも知れないが。

個人的にはAR RAM Diskのほうが好きなので、こちらも紹介しておくか。
AR Soft NT系のみなので注意。


WebMaster めるてぃ