web-dev-qa-db-ja.com

Mac OS Xでプロセスの優先度を設定する方法はありますか?

Mac OS Xで100%CPUで実行されているバックグラウンドプロセスがあります。それが原因で、他のすべてのアプリケーションが非常に遅くなります。

私のアプリケーションがよりよく実行できるように、このプロセスが50%以下になるように設定したいと思います。これどうやってするの?

53
Daniel Cukier

コマンドライン(Terminal.appなど)から、他のUNIXと同じようにNicereniceを使用します。

プロセスを起動するときに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を使用することをお勧めします。上。

注:スーパーユーザー権限がないと、プロセスの優先順位を上げることはできません。一般ユーザーの場合、Nicereniceは一方通行です。また、優先度の小さな変更は、実行時間に大きな影響を与える可能性があります。ですから、理解するまでこれを楽にしてください。

次のコマンドを使用できます。

renice -n # PID

どこ:

  • は0よりも大きい数値です(そうでない場合、プロセスをより高い優先度に移動します)
  • [〜#〜] pid [〜#〜]は、ターミナルアプリ(utilities/terminal.app)でtopと入力して表示できるプロセスIDです

システムプロセスまたは別のユーザープロセスの場合は、次のように入力する必要があります。

Sudo renice -n 10 PID

パスワードを要求されます(sudoerの場合)。数については、10または19(さらに低い優先度)をお勧めします。

これにより、CPU使用率ではなく優先度が変更されることに注意してください。 CPUを必要とする他のプロセスを実行していない場合、またはMac(Core 2 Quad Core)に複数のCPUがある場合でも、プロセスはCPUの100%を使用する可能性があります。

17
pietro Sormanni
renice 20 $(pgrep ImageOptim)

または、ImageOptimの代わりにプログラムの名前を使用します

6

無料のBeNicerや Process Wizard (以前のお気に入り)などのGUIユーティリティも多数あり、さらに$ 1.99バージョンの Freezer が私のお気に入りです。これらはすべて、実行中のアプリケーションで機能します。

5
beiju
  • プロセスがシステムプロセスではなくアプリまたはアプリヘルパーユーティリティであり、システムブートごとにNiceまたはreniceを実行したくない場合は、次のことを試してみてください AppPolice 。オープンソースで無料です。ダウンロード ここ または homebrew コマンドでインストールbrew cask install AppPolice

  • もう1つの代替案は、htopと呼ばれる非常に優れたコマンドラインタスクマネージャGUIです。すべてのプロセスを確認し、F7およびF8ショートカットを使用してNice値を調整できます。 (負のNice値は優先順位が高く、正の値では逆になることに注意してください)

それをインストールするには:

  • homebrew をまだインストールしていない場合は、インストールしてください。
  • ターミナルでこのコマンドbrew install htopを実行します
  • これで、htopを実行してターミナルのプロセスを表示および管理したり、Sudo htopを実行してすべてのシステムをカバーしたりできます。
2
JacopKane

アプリのPLISTファイルの変数を使用して、デーモンのNice値(優先度)を永続的に設定できます。端末ウィンドウでMAN plistと入力する方法を確認するには、.

0
SYNERGIST