1. empty.exe によるメモリの開放は軽くて早い
たくさんのアプリケーションを開くと、メモリの使用量が増え、PC の処理がもたつく。
ブラウザにアドオンを詰め込み、仮想化ソフトを起動。開発環境を立ち上げ、同時に別のブラウザで動画を見ながら、バックグラウンドで何個もプロセスを常駐。これにより、かなりのメモリを消費する。
そのため、定期的にメモリを開放するアプリケーション「めもりくりーなー」を利用している。
ただし、メモリに余裕がないときに、メモリを開放させると、一時的に処理が遅くなる。
追記(2013/03/06): Windows で起動中のアプリケーションに影響を与えにくいメモリの開放 - 軽い動作の Wise Memory Optimizer も参考に。
a. empty.exe のインストール
これに対して、empty.exe は、動作の軽いメモリ開放ソフト。
最強安全メモリ開放ソフト(マイクロソフト) | Windows XP/Vista/7の裏技 によると、
「empty.exe」このソフトはほかのメモリ開放ソフトとは違い、強制的に開放することはありませんので安全です。 しかも、効果抜群!
Windows Server 2003 Resource Kit Tools これをダウンロードしてWinRAR などで解凍します。
解 凍した中に「rktools.msi」があるので、これも解凍する。(右クリ ックでプログラムから開く>解凍ソフトを選択>「empty.exe」を取り 出す。)
面倒ならインストールして「empty.exe」を取り出しても構いません。
「empty.exe」を C:¥WINDOWS¥system32 の中に入れます。
上記を参考にして、empty.exe をインストールした。
- 7-Zip を用いて、rktools.exe を展開すると、rktools フォルダが作成される。
- rktools フォルダ内にある rktools.msi を展開した後、empty.exe を取り出す。
- empty.exe を C:\Windows\System32 へ移動する。
b. empty.exe の実行
empty.exe を実行するには、
- スタートメニューより、「コマンド プロンプト」を起動する。
- コマンドプロンプトに empty * と入力し、実行する。(アスタリスクを入力するのを忘れずに。)
動作時間が短く、実行中のアプリに、ほとんど影響を与えないようだ。ただし、メモリ解放が効果的に行われているのかよくわからない。
Memory Fox via kwout
2. タスク スケジューラ で定期的に empty.exe を実行する
次に、タスク スケジューラを使い、empty.exe を定期的に実行させることにした。
タスク実行の設定は、以下の通り。
- ログオンしてから、1時間後にタスクを実行する
- その後、定期的に1時ごとにタスクを実行する。
a. タスクの作成
スタートメニューより、「タスクのスケジュール」を検索し、タスク スケジューラを起動する。
タスク スケジューラのメニューより、
- 操作 > タスクの作成。
「全般」タブにおいて、適当にタスクの名前を付けた。ここでは `empty’ とした。
また、「最上位の特権で実行する」にチェックを付けておいた。理由は、empty.exe を管理者権限で実行した時の方が、制約が少なかったため。
b. トリガーの設定
「トリガー」タブにおいて、新規ボタンを押し、新しいトリガーを作成する。
「新しいトリガー」を以下のように設定した。
- タスクの開始を「ログオン時」
- 詳細設定
- 繰り返し間隔を「30分」に設定
- 継続時間を「無期限」に設定
遅延時間、繰り返しの間隔については、以下を参考にした。
- cf. トリガー の詳細設定
c. 操作の設定
次に、タスク作成の「操作」タブにおいて、新規ボタンで、新しい操作を作成。
- 操作を「プログラムの開始」
- プログラム/スクリプトを empty と指定
- 引数の追加で `*’ を指定
これで、次回のログインから、タスクが有効になる。
スクリプトを実行するには、
- タスク スケジューラを開き、左側のペインより、タスクスケジューラ(ローカル) > タスク スケジューラ ライブラリを選択。
- 真ん中のペインより、先ほど作成した タスク empty を探し、右クリック > 実行する を選択する。
ただし、この方法では、プログラムが実行される度にウィンドウが一瞬表示される。
3. VBS を利用し、タスクの実行時にウィンドウを表示させない
タスクが実行される度に、ウィンドウが表示されないようにするは、スクリプトを利用する。
メモ帳を開き、以下のスクリプトを書き、ファイル名は empty.vbs として適当な場所に保存した。ここでは、C:\Program Files\empty\ に置いた。
CreateObject("WScript.Shell").Run "empty *", 0
スクリプトの書き方は、コマンドウィンドウを表示しないで実行するには - Mookノート を参考にした。
タスク スケジューラでタスクを編集
先ほど作成したタスク empty を修正する。
- タスク スケジューラを開き、左側のペインより、タスクスケジューラ(ローカル) > タスク スケジューラ ライブラリを選択。
- 真ん中のペインより、先ほど作成した タスク empty を探し、右クリック > プロパティ を選択。
- 「操作」タブで、編集ボタンを押す。
- プログラム/スクリプト で、上記の保存したスクリプトを参照して、指定する。引数の追加は、空にした。
4. タスクの履歴を確認する
タスクのプロパティと履歴を表示する によると、
タスクの履歴は、有効または無効に設定することができます。[操作] ウィンドウで [すべてのタスク履歴を無効にする] または [すべてのタスク履歴を有効にする] をクリックして、タスクの履歴の表示を変更します。
その後、各タスクを選択し、「履歴」タブをクリックすると、履歴が表示される。
作成したタスクは、「ログイン後」に実行されるので、一度ログアウトした後、再ログインし、履歴を確認する。
5. スリープから復帰したときに実行する
追記(2013/02/01): スリープから復帰したときに、ブラウザの動作がもっさりする傾向ある。スリープから復帰した直後にも empty.exe を実行したい。
上記で作成したタスク empty のプロパティを開く。
「トリガー」タブを開き、「新規」ボタンを押す。
「トリガーの編集」ウィンドウにおいて、以下のように設定した。
- タスクの開始: イベント時
- 設定
- ログ: システム
- ソース: Power-Troubleshooter
- イベント ID: 1
設定値
このトリガーは、システムのログを元にしている。
トリガー によると、
[イベント時]
このトリガーは、特定のイベント エントリがイベント ログに追加されたときにタスクを実行させます。…基本イベント トリガー設定を選択する場合、特定のイベント ログの 1 つのイベントがタスクをトリガーします。イベントが含まれるイベント ログとイベント発行者名を選択し、イベント ID を指定します。
システムがスリープするときのログを調べるには、以下を参照。
具体的な値は、システムの起動・終了時に記録されるイベントログ – GeekFactory によると、
休止状態から回復
Power-Troubleshooter
1
システムはスリープ状態から再開しました。
0コメント:
コメントを投稿