Windows PCを使っていて多くのプログラムを動かしていると,プログラム起動に時間がかかったり操作中にしばらく操作不能になったりすることがある。
これらの現象の原因として,物理メモリの空き容量が減ってくるとHDDやSSDなどのストレージをデータの一時的なメモリの代わりに使用するようになるのが原因の一つ。
また物理メモリの一部を,PCの動作状況に応じてHDDやSDDのストレージからプログラムやデータをロードする場合に,スピードを上げるためにキャッシュ領域として利用している。
物理メモリは,実際に動作しているプログラムやデータとこのキャッシュと合わせて消費される。
このため,PCを使っていく間にキャッシュとして使用する物理メモリのサイズが大きくなっていき,HDDやSSDを一時的にメモリとして使わざるを得なくなる。
このような状況になった場合,キャッシュは現在の処理に必要なものではないため,これを強制的に開放することにより物理メモリの空き容量を多くすることが出来ます。
これを行うことを,メモリ開放と呼びます。
Windowsでは,状況に応じてこのキャッシュサイズを自動的に調整しますが,どうも大きめに使用する傾向にあるようで,またメモリ開放のアルゴリズムがあまり洗練されていないようです。
そこで,このような状況になった場合,ユーザーの判断で手動でのメモリ開放を行うことは有効となる。
笑えることに,Microsoftからメモリ解放を行うツールがリリースされている。
MicrosoftからリリースされているResource Kit Toolsに,メモリ解放を行うプログラムも入っています。
Microsoftのここのページから,Resource Kit Toolsのインストーラーrktools.exeをダウンロードする。
このファイルをダブルクリックして,インストールします。
デフォルトでC:\Program Files (x86)\Windows Resource Kits\Toolsにインストールされるので,システム環境変数PATHに追加しておく。
実行するには,管理者権限でコマンドプロンプトを起動して,
> empty *
とすれば,物理メモリのキャッシュ領域を開放してくれる。
タスクスケジューラーで定期的に実行するようにします。
まず,empty.exeをbatファイルで実行できるように,C:\WinApl\exe(PATHが通っているディレクトリならどこでも良い)にmemfree.vbsファイルを以下の内容で作成する。
Set emp = CreateObject("Wscript.Shell") emp.run "cmd /c empty.exe *",vbhide
タスクスケジューラに登録する。
これで,1時間毎にメモリ解放が自動的に行われるようになる。
新しくコメントをつける