Windowsの話題を中心に「知っているつもり」のお話を書いてみます。

第5回 Windows7のSuperFetchとReadyBoost(後編)

»

前編の続きです。前回はSuperFetchについてお話ししました。

今回はWindowsVista / 7のReadyBoostについてお話しします。

ReadyBoostにまつわる都市伝説!?

 ReadyBoostとはUSBフラッシュメモリ等を使ってメモリ搭載量の少ないパソコンのパフォーマンスを上げようという機能です。元々は搭載メモリが少なくてメモリ増設も容易ではない(または出来ない)古いノートパソコンなどで手軽にパフォーマンスをアップさせる機能としてWindowsVistaより搭載されていました。当初、よく間違えられて「パソコン本体のメモリ空間をUSBフラッシュメモリを使って増設するもの」と言われていました。つまり、512MBのメモリを搭載したパソコンに1GBのメモリを接続すると1.5GBのメモリ容量になる、とか。これは正しくありません。ハードディスクの読み込みキャッシュとして使うというのが適切な表現かと思います。

 前回お話ししたSuperFetchは、これから使用するであろうプログラムを予めハードディスクよりメモリに読み込んでおく機能でした。但し、メモリ容量の少ないパソコンではメモリに余裕がありません。そこでメモリに取り込む前にUSBフラッシュメモリなどに書き込んでそこから読み出すというキャッシュとして機能させます。これで効果があると考えられるのがランダムアクセスによるデータの読み出しです。シーケンシャルアクセスでは(とりあえず)順に並んだデータを読み出すわけでハードディスクとしてはヘッドの動きも少なくそこそこ速く読めるわけです。一方、ランダムアクセスは散在したデータを読み出すのでハードディスクではヘッドの動きを考えると読み書きに時間がかかるわけです。フラッシュメモリでしたらこのヘッドの動きがないわけですから、ハードディスクより高速に読み書きが出来るということになります。つまり、ランダムアクセスや小さいファイルを扱う場合はReadtyBoostによりキャッシュはより効果的と言うことになります。

 また、USBフラッシュメモリへのデータの書き込みは圧縮されて約50%のサイズで記録されます。書き込みに関しては、ライトキャッシュとして機能させるわけではありませんのでいつ抜いても(外しても)動作に支障はありません。書き込まれるデータは128ビットのAESで暗号化されていますので盗まれても情報が漏れると言うことは(理屈上は)ありません。

効果があるのは?

 では、このReadyBoostは効果があるのでしょうか?キャッシュと言うからには元のデバイス(この場合ハードディスク)より高速でなければなりません。手持ちの決して高速ではないUSBフラッシュメモリで速度を測定してみました。測定に使ったパソコンはAcerのネットブックASPIRE one D250 Br18というタイプのものです。搭載メモリ容量は1GBです。ちなみにボディの色は赤です。(いや、だから通常の三倍速いとか・・・お約束なことは言いませんが)

 速度測定はCristalDiskMarkを使いました。赤字のところに注目してください。

ハードディスク
 シーケンシャル リード 50.44 MB/sec
 シーケンシャル ライト 47.46 MB/sec
 ランダム リード(512K) 17.12 MB/sec
 ランダム ライト(512K) 18.52 MB/sec
 ランダム リード(4K)     0.289 MB/sec
 ランダム ライト(4K)     1.150 MB/sec

USBメモリ(Sliconpower製 1GB)
 シーケンシャル リード 16.24 MB/sec
 シーケンシャル ライト 4.244 MB/sec
 ランダム リード(512K) 16.21 MB/sec
 ランダム ライト(512K) 1.935 MB/sec
 ランダム リード(4K)     4.276 MB/sec
 ランダム ライト(4K)     0.029 MB/sec

確かに小さいデータサイズのランダムアクセスは速いようです。しかし、ランダムアクセスリード(4KBのデータ)のときのみ速度がUSBフラッシュメモリの方が速くて、他はハードディスクの方が速いんです。ということは私の考えとしてはキャッシュとして有効ではないと考えています。

 体感速度ですが、ReadyBoost使用時でも変わりませんでした。つまり1GBもメモリを載せていればRedayBoostを使うまでに至らないということが考えられます。Windows7がそこそこ動くパソコンであればReadyBoostによるパフォーマンスの向上はそれほどみられないと考えています。仮に512MB程度のメモリ搭載量でもハードディスクより高速なUSBフラッシュメモリでなければ効果が出ないと考えられます。すみません、実は今回は実験としては失敗のデータでした。しかし、古いパソコンで手軽に効果を出そうとするのならば条件によっては有効な手だと思います。

 よって過度の期待をしてはいけないと思いますし、パフォーマンスを上げたいのであれば可能であればメモリを増設するとかパソコンを買い換えるとか言うことを検討された方がいいかと思います。

ポッドキャストでもお話ししています

今回の内容は私のポッドキャスト番組でもお話しさせていただいております。
下記のリンクから聴くことが出来ますのでよろしかったら聴いてみてください。
WoodStreamのデジタル生活 第33回 「WindowsのSuperFetchとReadyBoost」
WoodStreamのデジタル生活 第37回 「モニタアームとWindows7のスーパーフェチの続き」

iTunesからの登録はこちら
Unknown - WoodStreamのデジタル生活(Podcast) - WoodStreamのデジタル生活(Podcast)

Comment(2)

コメント

先日はありがとうございました。

 さて、Readyboost ですが、純粋にキャッシュというよりもページングファイルに対するキャッシュになりますね。(純粋にキャッシュというとSuperfetch内での処理のほうが意味的には近いでしょう)

 ページングファイルへのアクセスは4Kのランダムアクセスになるため、Readyboostの効果が表れます。逆に言えば、ページングファイルを使わない使い方であればさして効果は表れません。また、ReadyboostはHDDとUSBメモリを比較して早い場合なので、SSDを使っているとけっこうReadyboostを使われない場合もありますね。

 Virtual PCや開発環境、大きな動画・画像を使うアプリケーションなどメモリを大容量を使うケースでは効果が出るでしょう。開発者がちょっと前のノートPCなどで開発するときにちょっと恩恵を受けることができるかもしれません。5個や10個のアプリを同時に使う人にも有効ですね。

 この辺の突っ込んだ話をしていただけることを楽しみにしています♪

こちらこそありがとうございました。
確かにキャッシュという表現で言えばその通りですね。また、SSDではReadyBoostやSuperFetchは無効化されると聞いていますが、未確認です。
今回試した内容(環境)はReadyBoostの恩恵に与るような環境ではなかったかと思います。

まだまだ突っ込んで書く必要があるのとさらに調べてみる必要がありますね。追って書いていきたいと思います。

コメントを投稿する