Mac OS 9からMac OS Xへのアーキテクチャ上の大きな変更点の一つは、協調型マルチタスクからプリエンプティブ型マルチタスクへの移行でした。簡単に言うと、Mac OS 9のような協調型マルチタスクシステムでは、最前面のアプリケーションが処理時間の大部分を獲得し、バックグラウンドアプリケーションとどの程度共有するかを決定します。一方、Mac OS Xのようなプリエンプティブ型マルチタスクシステムでは、オペレーティングシステム自体が、最前面のアプリケーション、対応が必要な外部イベント、個々のバックグラウンドアプリケーションからのリクエストなどに基づいてCPUへのアクセスを分配します。
プリエンプティブ・マルチタスクの問題は、Mac OS Xが初期の頃、特に当時の低性能なMacで確実に直面した問題です。それは、オペレーティングシステムがバックグラウンドアプリケーションに処理時間を過度に割り当てると、最前面のアプリケーションが重く感じられ、ユーザーに不快感を与えることです。オペレーティングシステムのプログラマーは時折このことを忘れがちですが、重要なのはユーザーなのです。
Mac OS X のプリエンプション ポリシーは長年にわたって洗練されてきましたが、バックグラウンド アプリケーションが本質的に何も役に立たない処理を実行しながら、かなりの CPU 時間を消費することは依然として可能です。ここで言っているのは、Time Machine がバックグラウンドでハードディスクをバックアップすることではありません。別のアプリケーションを使用している間も Safari が Flash アニメーションを実行し続けるようなことです。また、Safari で多数のタブを開いていると、プログラムを使用していないにもかかわらず、各タブが独自の JavaScript または Flash コードを実行している場合、Mac の動作が遅くなる可能性があります。さらに悪いことに、MacBook または MacBook Pro を使用している場合は、CPU 使用率が上昇すると発熱も増加し、ファンが作動します。つまり、Mac は遅くなるだけでなく、騒音も大きくなります。さらに悪いことに、
バッテリー駆動時間も急激に短くなります。
そこで、St. Clair Software の Jon Gotow 氏が作成した、一見シンプルに見える AppTamer の登場です。このアプリケーションの機能は、簡単に言うと、バックグラウンドで大量の CPU 時間を消費しているものの、何ら有用な処理を行っていないアプリケーションを停止 (終了ではなく一時停止) することです。多数のタブを開いた Web ブラウザーがその好例で、Adobe アプリケーションもバックグラウンドで CPU を大量に消費する傾向があると聞いたことがあります。ただし、バックグラウンドで CPU 時間を必要とするアプリケーションは数多くあります。常にバックグラウンド アプリケーションとなる Time Machine は別として、バックグラウンドで音楽を再生する必要がある iTunes や、
フォアグラウンドで何か他の処理を行っている間も音声チャットを維持する必要がある iChat などを考えてみてください。また、他の多くのプログラムは、バックグラウンドで自動的にスリープ状態になるように作成されています。
そのため、AppTamerはすべてのバックグラウンドアプリケーションに処理を停止させるだけでなく、よりきめ細かなレベルで動作する必要があります。そのため、バックグラウンドで実行されているアプリケーションをAppTamerが停止させるように指定することはできますが、すべての処理をユーザーが行う必要はありません。そのため、AppTamerのインターフェースは主に情報提供を目的としています。停止しているアプリケーションを表示し、CPU使用率をグラフ化し、アクティビティモニタのようなアクティブなプロセスのリストを表示し、選択したプロセスの詳細を表示します。
Jon Gotow氏によると、AppTamerは複数のリストを管理しており、その中には停止すべきではないシステムプロセスのブラックリスト(AppTamerのインターフェースにはチェックボックスすら表示されない)、iChatやiTunesなど、AppTamerで停止しようとするとカスタム警告が表示されるプログラムのリスト、そしてGoogle Chromeがブラウザのタブを開いているたびに生成するChrome Helperプロセスなど、親アプリケーションと同時に停止・起動できるヘルパーアプリのリストなどが含まれているという。また、バックグラウンド
のみで実行されるアプリケーションは常に実行し続ける必要があるため、AppTamerで管理しようとすると警告が表示される。
AppTamer はどのように設定するのでしょうか?最も簡単な方法は、プログラムを起動してしばらく通常の使用状況を維持し、AppTamer ウィンドウまたはメニューバーのシステム全体に表示されるメニュー(実行中および停止中のアプリケーションとバックグラウンド
プロセスの一覧)で CPU の節約効果を確認することです。AppTamer のデフォルト設定でも、CPU 時間をある程度節約できる可能性があります。さらに CPU 時間を節約できるかどうかを確認するには、AppTamer の「詳細」タブをクリックしてプロセスの一覧を表示し、「マイ ウィンドウ プロセス」を選択して、実行中のプロセスの一覧を下にスクロールします。バックグラウンドで実行する必要がないことが分かっているアプリケーションがある場合は、「自動停止」チェックボックスをオンにします。そのまま作業を続け、AppTamer の効果によって Mac の応答性に顕著な違いが出るかどうかを確認します。(技術的には、AppTamer でウィンドウ化されていないプロセスや他のユーザーが所有するプロセスを停止することもできますが、これらのプロセスはバックグラウンドで実行されている必要がある可能性が高いです。)
バックグラウンドで実行する必要がないアプリケーションを判断するのは少し難しい。例えば、AppTamerはiChatがバックグラウンドサイクルを必要とすることを認識しているが、Skypeも同様であることは認識していない。また、iTunesはフォアグラウンドでなくても音楽を再生し続ける必要があることは明らかだが、Twitterアプリケーションがバックグラウンドで定期的に自己更新する必要があることは、それほど明らかではないかもしれない。さらに、BBEditのように、既にバックグラウンドで適切に動作しているアプリケーションを停止する必要もない。そのため、停止する価値があるものを判断するために私が使っているもう1つの方法は、AppTamerのプロセスリストを「%Avg」列(15秒間の平均CPU使用率を示す)で並べ替えることだ。Firefox
やSafariなど、リストの上位にあるプロセスは、停止するのに最適な候補だ。
AppTamerには「ゲームモード」チェックボックスがあり、これを選択すると、アクティブなアプリケーションを除くすべてのウィンドウアプリケーションが停止され、最前面のアプリケーションがCPU時間を最大限活用できるようになります。これは、ゲームをプレイする人、つまり、ゲームに多くのプロセッサパワーが必要で、プレイ中に他の動作を気にする必要がない人にのみ有効です。
AppTamerのCPU使用率の数値に関して、一つ混乱があります。AppTamerは、Appleのアクティビティモニタがそうであるように、個々のアプリのCPU使用率を単一のプロセッサに正規化して報告します。そのため、デュアルコアMacでアプリがCPUの107%を使用する場合があります。実際には、各コアの一部が使用されており、その合計が200%のうち107%になるのです。
しかし、AppTamerが奇妙なのは、停止した各アプリケーションの最新の平均CPU使用率を合計し、それを全プロセッサで割ることで、推定CPU節約量を計算する点です。そのため、デュアルコアMacでSafariが単独でCPUの10%を使用していると表示される場合、全体的な節約量はわずか5%と報告され、AppTamerの有用性が低い印象を与えてしまう可能性があります。Jon Gotow氏は、このデータの表示方法を改善するための検討を続けていると述べています。
数字が何を表しているかはさておき、Firefox、Safari、Chromeでバックグラウンドで多数のタブを開いていると、他のアプリケーションのフォアグラウンドでの応答速度が低下することは明らかです。私の13インチユニボディアルミMacBookでは、AppTamerはCPU使用率を明らかに削減し、動作温度と静音性を向上させています(壁コンセントで電源を取っていますが、バッテリー駆動時間も向上すると思います)。8コアMac Proでは、処理能力がはるかに高いため、AppTamerによる全体的なパフォーマンスの向上はそれほど顕著ではありません。
AppTamer を使用すると、少し不安になる副作用が 2 つあります。停止したアプリケーションは Mac OS X ではクラッシュしたように見えるため、マウスポインタをそのウィンドウに移動するたびに、回転する死のピザが表示されることがあります。同様に、アクティビティモニタでは停止したアプリケーションが「応答なし」と報告されます。これらはどちらもアプリケーションが停止していることを示しており、クラッシュしているわけではありません。停止したアプリケーションのウィンドウまたは Dock アイコンをクリックすると、すぐに起動します。もちろん、実際にクラッシュしたアプリケーションは、クリックに応答しないことに気づくまでは停止したアプリケーションと見た目は同じなので、少し戸惑うかもしれません。
結局のところ、AppTamerがCPUサイクルの節約に役立つかどうかは、ご自身のアプリケーションや使用パターンによって判断できるものです。例えば、Firefoxで多くのタブを開いたままにしないようにすればCPU使用率を下げられるのですが、私にはそれができないので、AppTamerは私にとって非常に役立っています。AppTamerは15日間無料でお試しいただけます。期間中に効果を感じたら、シングルユーザーライセンスを14.95ドルでご購入いただけます。