Q

Windows XPマシンの搭載メモリーを増強しました。このため,ディスク上のページファイルを削除してディスクにメモリー空間をスワップしないようにすればパフォーマンスが向上するのではないかと思うのですが,どのようにすればいいのでしょう?

A

32ビットのWindowsでは,一般的に最大4Gバイトまでのメモリー空間を利用できます。ただし,通常は物理メモリーが足りないため,ページファイルと呼ばれる仮想アドレスのための領域をディスク上に作成して物理メモリー以上のメモリー空間を確保しています(図6)。

図6 ●Windowsにおけるメモリーの管理方式
4Gバイトのメモリー空間は,Windowsが使う領域とプログラムが使う領域の2つの2Gバイト空間に分かれており,Windowsはその時点で実行に必要なデータを物理メモリー上に置くようになっている。

 もし,4Gバイトを超えるような巨大な物理メモリーを搭載していればページファイルを配置しません。そうすると,ディスクとスワップが発生せず,処理が高速になります。このため,4Gバイト未満でも,同様にページファイルを削除すると処理が高速になるのではと期待されるでしょう。

 ページファイルを使わないようにするには,システムのプロパティにある[詳細設定]の[パフォーマンス]から[詳細設定]タブの[仮想メモリ]で設定できます。レジストリでも設定でき,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagementのサブキーにあるDisablePagingExecutiveというキーの値を「1」に変更します。

 ただし,ページファイルを使わないほうが高速になるとは限りません。

ページファイルの削除はもろ刃の剣
 Windowsは利用中のコードとデータ,OSのコア部分を物理メモリー上に格納しているのに加え,余っているメモリーはできるだけキャッシュとして使っています。これにより,一度使ったプログラムを高速に再起動できるようにしています。もちろん空きメモリー空間が少なくなるとキャッシュ領域を動的に減らしています。

 アプリケーションには起動時に,数百Mバイト大量のメモリー空間を要求するものもあります。ページファイルがないと,すぐには使わないこれらの空間についても物理メモリー上に確保してしまいます。また,Photoshopのように,そもそもページファイルがないと起動時に警告を発するアプリケーションもあります。

John Savill's FAQ for Windows