79

从我过去读到的内容来看,我们鼓励您不要以编程方式更改 Windows 应用程序的优先级,如果这样做,则永远不要将它们更改为“实时”。

与“高”和“高于正常”相比,“实时”进程优先级设置有何作用?进程优先级列表,范围从低到实时。

4

7 回答 7

85

实时优先级线程永远不会被定时器中断抢占,并以比系统中任何其他线程更高的优先级运行。因此,受 CPU 限制的实时优先级线程可能会完全毁掉一台机器。

创建实时优先级线程需要特权(SeIncreaseBasePriorityPrivilege),因此只能由管理用户完成。

对于 Vista 及更高版本,需要以实时优先级运行的应用程序的一种选择是使用多媒体类调度程序服务(MMCSS) 并让它管理您的线程优先级。MMCSS 将防止您的应用程序使用过多的 CPU 时间,因此您不必担心会使机器瘫痪。

于 2009-11-03T03:07:36.297 回答
27

简单地说,“实时”优先级高于“高”优先级。我认为没有比这更多的了。哦,是的-您必须SeIncreaseBasePriorityPrivilege将线程放入实时类中。

Windows 有时会出于各种原因提高线程的优先级,但不会将线程的优先级提高到另一个优先级。它也不会提高实时优先级中线程的优先级。因此,高优先级线程不会自动临时提升到实时优先级类。

Russinovich 关于 Windows 如何处理优先级的“Windows 内部”一章是了解其工作原理的绝佳资源:

请注意,在普通 Windows 系统上具有实时优先级的线程绝对没有问题——它们不一定适用于在专用机器上运行的特殊进程。我想多媒体驱动程序和/或进程可能需要具有实时优先级的线程。但是,这样的线程不应该需要太多 CPU - 它应该在大部分时间处于阻塞状态,以便正常的系统事件得到处理。

于 2009-11-02T22:01:21.150 回答
17

这将是可用的最高优先级设置,并且通常仅用于专用于运行该特定程序的盒子。它实际上足够高,可能会导致键盘和鼠标线程缺乏响应,以至于它们变得无响应。

所以基本上,如果你不得不问,不要使用它:)

于 2009-11-02T22:03:37.313 回答
3

实时是进程可用的最高优先级。因此,它与“高”的不同之处在于它高出一级,而“高于正常”的不同之处在于它大了两级。

同样,实时也是线程优先级。

进程优先提高或降低进程中所有有效的线程优先级,因此被视为“基本优先级”。

所以,一个进程有:

  1. 基本进程优先级
  2. 单个线程优先级,基优先级的偏移量。

由于实时应该保留给绝对必须抢占其他正在运行的进程的应用程序,因此有一个特殊的安全特权来防止随意使用它。这是由安全策略定义的。

在 NT6+ (Vista+) 中,使用 Vista Multimedia Class Scheduler 是在非实时操作系统中实现实时操作的正确方法。在大多数情况下,它可以工作,但并不完美,因为操作系统不是为实时操作而设计的。

微软认为这个优先级非常危险,这是正确的。除非在非常特殊的情况下,否则任何应用程序都不应使用它,即使在这种情况下,也应尝试将其使用限制为临时需求。

于 2011-04-23T18:42:51.707 回答
1

一旦 Windows 得知程序使用高于正常的优先级,它似乎限制了进程的优先级。

将优先级从 IDLE 设置为 REALTIME 不会改变 CPU 使用率。

我在我的多处理器 AMD CPU 上发现,如果我放弃其中一个 CPU 而不是最后一个 CPU,CPU 使用率将达到 MAX OUT,最后一个 CPU 保持空闲状态。我的 Quad AMD 处理器速度提高到 75%。

使用任务管理器->选择进程->右键单击进程->选择->设置亲和性单击除最后一个处理器之外的所有。如果处理视频将增加,则剩余处理器和帧数的 CPU 使用率将增加到 MAX。

于 2012-10-21T05:03:37.297 回答
0

它基本上在其他所有方面都更高/更大。键盘的优先级低于实时进程。这意味着该过程将比键盘更快地考虑在内,如果它无法处理,那么您的键盘就会变慢。

于 2015-05-23T04:47:49.640 回答
0

与实时之前的所有其他答案一样,该程序具有最高优先级。在处理该程序之前,不会处理任何内容。
在我的 pentium 4 机器上,我将 minecraft 设置为实时很多,因为它大大提高了游戏性能,并且系统看起来完全稳定。所以实时并不像看起来那么糟糕,只要你有一个多核设置程序对特定核心或核心的亲和力(只是不是全部,只是为了让其他一切都能够运行以防实时设置程序挂断)并将优先级设置为实时。

于 2016-12-28T18:33:41.610 回答