WindowsでPCが重い時にメモリ解放を行う anchor.png

Windows PCを使っていて多くのプログラムを動かしていると,プログラム起動に時間がかかったり操作中にしばらく操作不能になったりすることがある。

これらの現象の原因として,物理メモリの空き容量が減ってくるとHDDやSSDなどのストレージをデータの一時的なメモリの代わりに使用するようになるのが原因の一つ。

また物理メモリの一部を,PCの動作状況に応じてHDDやSDDのストレージからプログラムやデータをロードする場合に,スピードを上げるためにキャッシュ領域として利用している。
物理メモリは,実際に動作しているプログラムやデータとこのキャッシュと合わせて消費される。
このため,PCを使っていく間にキャッシュとして使用する物理メモリのサイズが大きくなっていき,HDDやSSDを一時的にメモリとして使わざるを得なくなる。

このような状況になった場合,キャッシュは現在の処理に必要なものではないため,これを強制的に開放することにより物理メモリの空き容量を多くすることが出来ます。
これを行うことを,メモリ開放と呼びます。

Windowsでは,状況に応じてこのキャッシュサイズを自動的に調整しますが,どうも大きめに使用する傾向にあるようで,またメモリ開放のアルゴリズムがあまり洗練されていないようです。
そこで,このような状況になった場合,ユーザーの判断で手動でのメモリ開放を行うことは有効となる。

Page Top

Microsoftがリリースしているメモリ解放ツール anchor.png

笑えることに,Microsoftからメモリ解放を行うツールがリリースされている。
MicrosoftからリリースされているResource Kit Toolsに,メモリ解放を行うプログラムも入っています。

Microsoftのここのページから,Resource Kit Toolsのインストーラーrktools.exeをダウンロードする。
このファイルをダブルクリックして,インストールします。

  • ライセンス承認画面:I agreeをマークしてNextを押す
  • ユーザー名確認画面:デフォルトのまま,Nextを押す
  • インストール先:デフォルトのまま,Nextを押す
  • Finishを押す

デフォルトでC:\Program Files (x86)\Windows Resource Kits\Toolsにインストールされるので,システム環境変数PATHに追加しておく。

実行するには,管理者権限でコマンドプロンプトを起動して,

> empty *

とすれば,物理メモリのキャッシュ領域を開放してくれる。

Page Top

タスクスケジューラに登録して定期的に実行する anchor.png

タスクスケジューラーで定期的に実行するようにします。

まず,empty.exeをbatファイルで実行できるように,C:\WinApl\exe(PATHが通っているディレクトリならどこでも良い)にmemfree.vbsファイルを以下の内容で作成する。

Set emp = CreateObject("Wscript.Shell")
emp.run "cmd /c empty.exe *",vbhide

タスクスケジューラに登録する。

  • スタートメニュー>Windows管理ツール>タスクスケジューラでタスクスケジューラを起動
  • タスクスケジューラ(ローカル)を右クリックして,タスクの作成を選択
  • 全般タブで設定する
    名前:メモリ解放
    「最上位の特権で実行する」をマークする
  • トリガータブで新規ボタンをクリック
  • トリガータブを以下のように設定して,OKボタンを押す
    タスクの開始:スケジュールに従う 繰り返し間隔:1時間
  • 操作タブで新規ボタンをクリック
    「プログラム/スクリプト」に,作成したc:\WinApl\exe\memfree.vbsを実行できるようにフルパスで登録する。

これで,1時間毎にメモリ解放が自動的に行われるようになる。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 121, today: 1, yesterday: 1
最終更新: 2023-11-07 (火) 15:41:31 (JST) (173d) by yuji