|
現: 2023-11-07 (火) 14:41:31 yuji |
| + | * WindowsでPCが重い時にメモリ解放を行う [#xc5e7c0b] |
| + | Windows PCを使っていて多くのプログラムを動かしていると,プログラム起動に時間がかかったり操作中にしばらく操作不能になったりすることがある。~ |
| | | |
| + | これらの現象の原因として,物理メモリの空き容量が減ってくるとHDDやSSDなどのストレージをデータの一時的なメモリの代わりに使用するようになるのが原因の一つ。~ |
| + | |
| + | また物理メモリの一部を,PCの動作状況に応じてHDDやSDDのストレージからプログラムやデータをロードする場合に,スピードを上げるためにキャッシュ領域として利用している。~ |
| + | 物理メモリは,実際に動作しているプログラムやデータとこのキャッシュと合わせて消費される。~ |
| + | このため,PCを使っていく間にキャッシュとして使用する物理メモリのサイズが大きくなっていき,HDDやSSDを一時的にメモリとして使わざるを得なくなる。 |
| + | |
| + | このような状況になった場合,キャッシュは現在の処理に必要なものではないため,これを強制的に開放することにより物理メモリの空き容量を多くすることが出来ます。~ |
| + | これを行うことを,メモリ開放と呼びます。 |
| + | |
| + | Windowsでは,状況に応じてこのキャッシュサイズを自動的に調整しますが,どうも大きめに使用する傾向にあるようで,またメモリ開放のアルゴリズムがあまり洗練されていないようです。~ |
| + | そこで,このような状況になった場合,ユーザーの判断で手動でのメモリ開放を行うことは有効となる。 |
| + | |
| + | ** Microsoftがリリースしているメモリ解放ツール [#zfb3a868] |
| + | 笑えることに,Microsoftからメモリ解放を行うツールがリリースされている。~ |
| + | MicrosoftからリリースされているResource Kit Toolsに,メモリ解放を行うプログラムも入っています。 |
| + | |
| + | [[Microsoftのここのページ>https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=17657]]から,Resource Kit Toolsのインストーラー''rktools.exe''をダウンロードする。~ |
| + | このファイルをダブルクリックして,インストールします。 |
| + | - ライセンス承認画面:I agreeをマークしてNextを押す~ |
| + | - ユーザー名確認画面:デフォルトのまま,Nextを押す~ |
| + | - インストール先:デフォルトのまま,Nextを押す~ |
| + | - Finishを押す~ |
| + | |
| + | デフォルトで''C:\Program Files (x86)\Windows Resource Kits\Tools''にインストールされるので,システム環境変数PATHに追加しておく。 |
| + | |
| + | 実行するには,管理者権限でコマンドプロンプトを起動して, |
| + | > empty * |
| + | とすれば,物理メモリのキャッシュ領域を開放してくれる。~ |
| + | |
| + | ** タスクスケジューラに登録して定期的に実行する [#o7c4b060] |
| + | タスクスケジューラーで定期的に実行するようにします。 |
| + | |
| + | まず,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時間毎にメモリ解放が自動的に行われるようになる。 |