Gibt es eine Möglichkeit, die Priorität eines Prozesses in Mac OS X?

Ich habe einen Hintergrundprozess, der unter Mac OS X mit 100% CPU ausgeführt wird.

Ich möchte diesen Prozess auf nicht mehr als 50% einstellen, damit meine Anwendungen besser laufen können. Wie kann ich das tun?

Author: Gaff, 2009-09-17

6 answers

Verwenden Sie über die Befehlszeile (Terminal.app oder was auch immer) nice und renice, genau wie bei anderen Unixen.

Verwenden Sie beim Starten eines Prozesses nice:

nice -n <priority> <command> <arguments to command>

Die Standardpriorität ist Null, positive Werte sind " schöner "(das ist niedrigere Priorität) und negative Werte sind" weniger schön " (höhere Priorität). Sieht aus wie Mac OS läuft von +10 bis -10.

Verwenden Sie renice, um die Priorität eines bereits laufenden Prozesses zu ändern (von der Manpage renice auf 10.5):

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]  
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Der Teil, den du bist interessiert ist hier das pid Bit. Das ist die Prozess-ID für den Job und Sie können sie mit ps -u <your username> finden und nach dem Prozessnamen suchen, aber ich bevorzuge in diesem Fall top -o, da der Prozess, an dem Sie interessiert sind, ganz oben steht.

Hinweis: Ohne Superuser-Berechtigungen können Sie niemals die Priorität eines Prozesses erhöhen. Für normale Benutzer sind nice und renice Einbahnstraßen. Und kleine Prioritätsänderungen können große Auswirkungen auf die Laufzeit haben. So gehen Sie einfach auf diese, bis Sie verstehe es.

 64
Author: dmckee --- ex-moderator kitten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-14 10:14:32

Sie können den Befehl verwenden:

renice -n # PID

Wobei:

  • # ist eine Zahl, die größer als 0 sein sollte (andernfalls verschieben Sie Ihren Prozess auf eine höhere Priorität)
  • PID ist die Prozess-ID, die Sie durch Eingabe von top in der Terminal-App (Dienstprogramme/Terminal.app)

Wenn es sich um einen Systemprozess oder einen anderen Benutzerprozess handelt, sollten Sie Folgendes eingeben:

sudo renice -n 10 PID

Es wird Sie nach Ihrem Passwort fragen (wenn Sie sudoer sind). Wie für die Nummer würde ich empfehlen Sie 10 oder 19 (noch niedrigere Priorität).

Beachten Sie, dass dadurch die Priorität und nicht die CPU-Auslastung geändert wird. Wenn Sie keine anderen Prozesse ausführen, für die CPU erforderlich ist, oder wenn Sie mehr als eine CPU auf Ihrem Mac (Core 2 Quad Core) haben, verwendet der Prozess möglicherweise immer noch 100% der CPU.

 21
Author: pietro Sormanni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-08-28 14:57:01
renice 20 $(pgrep ImageOptim)

Oder verwenden Sie den Namen Ihres Programms anstelle von ImageOptim

 8
Author: William Entriken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-11-24 02:52:52

Es gibt auch eine Reihe von GUI-Dienstprogrammen, wie die Free BeNicer und Process Wizard (mein vorheriger Favorit), und die $1.99 Version von Freezer, die mein neuer Favorit ist. Diese arbeiten alle an laufenden Anwendungen.

 6
Author: beiju,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-16 05:15:57
  • Wenn Ihr Prozess eher ein App-oder App-Hilfsprogramm als ein Systemprozess ist und Sie nicht bei jedem Systemstart nice oder renice ausführen möchten, können Sie es AppPolice geben. Es ist open source und kostenlos. Sie können es herunterladen hier, oder installieren Sie es mit dem Befehl homebrew brew cask install AppPolice

  • Eine andere Alternative wäre eine sehr schöne Befehlszeilen-Task-Manager-GUI namens htop. Sie können alle Prozesse sehen und ihre nice - Werte einstellen durch F7 und und F8 Verknüpfungen. (Bitte beachten Sie, dass negative nice - Werte für positive Werte mehr priorisiert und entgegengesetzt sind)

Um es zu installieren:

  • Installation homebrew wenn Sie haben es noch nicht.
  • Führen Sie diesen Befehl brew install htop im Terminal
  • Jetzt können Sie htop, um Prozesse im Terminal zu sehen und zu verwalten, oder sudo htop, um das gesamte System abzudecken.
 6
Author: JacopKane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-01-27 14:46:06

Sie können den Nice-Wert (Priorität) für den Daemon mithilfe der Variablen in der PLIST-Datei für die App dauerhaft festlegen. Um herauszufinden, wie Typ MAN plist in einem Terminalfenster.

 1
Author: SYNERGIST,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-06-29 16:25:32