Mac OS Xで100%CPUで実行されているバックグラウンドプロセスがあります。それが原因で、他のすべてのアプリケーションが非常に遅くなります。
私のアプリケーションがよりよく実行できるように、このプロセスが50%以下になるように設定したいと思います。これどうやってするの?
コマンドライン(Terminal.app
など)から、他のUNIXと同じようにNice
とrenice
を使用します。
プロセスを起動するときにNice
を使用します。
Nice -n <priority> <command> <arguments to command>
デフォルトの優先度はゼロで、正の値は「ナイス」(つまり優先度が低い)、負の値は「ナイスが低い」(優先度が高い)です。 Mac OSは+10〜-10で動作しているようです。
renice
を使用して、すでに実行中のプロセスの優先度を変更します(10.5のrenice
manページから):
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
ここで関心のある部分はpid
ビットです。これはジョブのプロセスIDであり、ps -u <your username>
を使用してプロセス名を検索することで見つけることができますが、この場合はtop -o
を使用することをお勧めします。上。
注:スーパーユーザー権限がないと、プロセスの優先順位を上げることはできません。一般ユーザーの場合、Nice
とrenice
は一方通行です。また、優先度の小さな変更は、実行時間に大きな影響を与える可能性があります。ですから、理解するまでこれを楽にしてください。
次のコマンドを使用できます。
renice -n # PID
どこ:
top
と入力して表示できるプロセスIDですシステムプロセスまたは別のユーザープロセスの場合は、次のように入力する必要があります。
Sudo renice -n 10 PID
パスワードを要求されます(sudoerの場合)。数については、10または19(さらに低い優先度)をお勧めします。
これにより、CPU使用率ではなく優先度が変更されることに注意してください。 CPUを必要とする他のプロセスを実行していない場合、またはMac(Core 2 Quad Core)に複数のCPUがある場合でも、プロセスはCPUの100%を使用する可能性があります。
renice 20 $(pgrep ImageOptim)
または、ImageOptimの代わりにプログラムの名前を使用します
無料のBeNicerや Process Wizard (以前のお気に入り)などのGUIユーティリティも多数あり、さらに$ 1.99バージョンの Freezer が私のお気に入りです。これらはすべて、実行中のアプリケーションで機能します。
プロセスがシステムプロセスではなくアプリまたはアプリヘルパーユーティリティであり、システムブートごとにNice
またはrenice
を実行したくない場合は、次のことを試してみてください AppPolice 。オープンソースで無料です。ダウンロード ここ または homebrew コマンドでインストールbrew cask install AppPolice
もう1つの代替案は、htop
と呼ばれる非常に優れたコマンドラインタスクマネージャGUIです。すべてのプロセスを確認し、F7
およびF8
ショートカットを使用してNice
値を調整できます。 (負のNice
値は優先順位が高く、正の値では逆になることに注意してください)
それをインストールするには:
brew install htop
を実行しますhtop
を実行してターミナルのプロセスを表示および管理したり、Sudo htop
を実行してすべてのシステムをカバーしたりできます。アプリのPLISTファイルの変数を使用して、デーモンのNice値(優先度)を永続的に設定できます。端末ウィンドウでMAN plistと入力する方法を確認するには、.