有没有办法在 Mac OS X 中设置进程的优先级?

有没有办法在 Mac OS X 中设置进程的优先级?

我在 Mac OS X 上有一个后台进程以 100% CPU 运行。所有其他应用程序因此而运行得很慢。

我想将此过程设置为不超过 50%,以便我的应用程序可以更好地运行。我该怎么做?

答案1

从命令行(Terminal.app或其他任何方式)使用nicerenice,就像在其他 unix 上一样。

nice启动进程时使用:

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

默认优先级为零,正值表示“更好”(即优先级较低),负值表示“不太好”(优先级较高)。看来 Mac OS 的优先级从 +10 到 -10。

用于renice更改已经运行的进程的优先级(来自renice10.5 的手册页):

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是单行道。优先级的微小变化会对运行时间产生很大影响。所以在您理解它之前,请谨慎处理。

答案2

您可以使用以下命令:

renice -n # PID

在哪里:

  • #是一个应大于 0 的数字(否则您将把您的进程移至更高的优先级)
  • PIDtop是您可以在终端应用程序 (utilities/terminal.app) 中输入查看的进程 ID

如果它是系统进程或另一个用户进程,您应该输入:

sudo renice -n 10 PID

它会要求您输入密码(如果您是 sudoer)。至于数字,我建议 10 或 19(优先级更低)。

请注意,这将改变优先级而不是 CPU 使用率。如果您没有运行其他需要 CPU 的进程,或者您的 Mac 上有多个 CPU(Core 2 四核),则该进程可能仍会使用 100% 的 CPU。

答案3

renice 20 $(pgrep ImageOptim)

或者使用程序的名称而不是 ImageOptim

答案4

还有许多 GUI 实用程序,如免费的 BeNicer 和流程向导(我以前最喜欢的),以及 1.99 美元的版本冰箱,这是我的新宠。这些都适用于正在运行的应用程序。

相关内容