WindowsのようなマルチタスクのOSでは、同時に実行されるアプリケーション(プロセス)が常に平等に同じだけ動作するのではなく、重要なプロセスほど優先的に実行される「優先度」という仕組みが用意されているものが多い。こうしたOSでは、優先度が高いプロセスはより長い時間CPUを使うことができ、そうでないプロセスはたまにしか実行されない。であれば「『できるだけ速く動かしたい』と思うプロセスの優先度を上げてやればよい」と誰しも考えるだろう。Windowsでは、標準のWindowsタスクマネージャーを使えば、プロセスの優先度を設定できる。ただしこれは、そのときに実行されているプロセスの設定を変更するだけで、いったんプロセスが終了すると、次回実行するときには「通常」に戻ってしまう。
この「プロセス優先度の設定変更をすべて自動でやってしまおう」というのが「Application Priority Changer」だ。実行されているプロセスを常時監視し、あらかじめ登録されたプロセスが起動すれば、その優先度を変更する。ユーザは特に意識しなくても、設定されたプロセスを常に希望の優先度で実行できるようになる。
ところで、優先度の設定にはいくつか注意しなければなら点がある。まず、プロセスの実行速度が、CPUの占有時間以外の理由で決まってしまう場合──例えば、ディスクの入出力やインターネットの通信速度で決まるような場合──には、優先度を変更してもプロセスは高速化されない。ブラウザで大きなファイルをダウンロードするような場合は、優先度を上げたからといって、ダウンロードが短時間で完了することはない。
効果があるのは「主にCPUが頑張ることの多いプロセス」だ。例えば、動画ファイルのエンコードなどは──動画支援などを使っていなければ──主にCPUの利用可能時間によってエンコード速度が決まってくる。こうした場合には優先度設定を変更することで、エンコードにかかる時間が変わったりする。
ただし、CPUを長時間占有するプロセスを極端に高い優先度にすると、同時に実行されるほかのプロセスが極端に遅くなってしまう可能性もある。こうした場合には、ほかのプロセスが使うCPUコアを「空けておく」工夫も必要になるだろう。「Application Priority Changer」では、こうした用途にも対応し、CPUのコア割り当て(アフィニティ)も指定できるようになっている。
この二つの機能を上手に使えば、CPUをアップグレードしなくてもCPU性能を十分発揮できるようになる。試行錯誤は必要かもしれないが、ユニークなソフトとして便利に使いたい。
(天野 司)