从我过去读到的内容来看,建议您不要以编程方式更改Windows应用程序的优先级,如果您这样做了,您永远不应该将它们更改为“实时”。与“高”和“高于正常”相比,“实时”进程优先级设置的作用是什么?
92vpleto1#
一个实时优先级线程永远不会被定时器中断抢占,并且以比系统中任何其他线程更高的优先级运行。因此,一个受CPU限制的实时优先级线程可以完全摧毁一台机器。创建实时优先级线程需要权限(SeIncreaseBasePriorityPrivilege),因此只能由管理用户执行。对于Vista和更高版本,对于需要实时优先级运行的应用程序,一个选择是使用Multimedia Class Scheduler Service(MMCSS),让它管理线程优先级。MMCSS将防止应用程序使用过多的CPU时间,这样你就不必担心机器死机。
ukqbszuj2#
简单地说,“真实的”优先级类比“高”优先级类高。我不认为还有什么比这更重要的。哦,是的-你必须有SeIncreaseBasePriorityPrivilege才能把线程放入实时类。Windows有时会出于各种原因提高线程的优先级,但它不会将线程的优先级提高到另一个优先级类别。它也不会提高实时优先级类别中线程的优先级。因此,高优先级线程不会自动临时提高到实时优先级类别。Russinovich关于Windows如何处理优先级的“Inside Windows”一章是学习如何工作的很好的资源:
SeIncreaseBasePriorityPrivilege
请注意,在普通Windows系统上,实时优先级线程绝对没有问题--它们不一定是运行在专用机器上的特殊进程。我想多媒体驱动程序和/或进程可能需要实时优先级线程。然而,这样的线程不应该需要太多CPU --它应该阻塞大部分时间,以便正常系统事件得到处理。
yhxst69z3#
这是最高的可用优先级设置,通常只用于专门运行特定程序的机器,实际上它已经高到足以导致键盘和鼠标线程饥饿,以至于它们变得没有响应。所以基本上,如果你一定要问,不要用它:)
0yycz8jy4#
“实时”是进程可用的最高优先级 * 类 *。因此,它与“高”的不同之处在于高一级,与“高于正常”的不同之处在于高两级。类似地,实时也是一个线程优先级。进程优先级 class 提高或降低进程中所有有效的线程优先级,因此被视为“基本优先级”。因此,流程具有:1.基本进程优先级类。1.单个线程优先级,基优先级类的偏移量。由于实时性应该是为那些绝对必须抢占其他运行进程的应用程序保留的,所以有一个特殊的安全特权来防止对它的随意使用,这是由安全策略定义的。在NT6+(Vista+)中,使用Vista多媒体类调度程序是在“非”实时操作系统中实现实时操作的正确方法。在大多数情况下,它是有效的,但并不完美,因为操作系统不是为实时操作设计的。微软认为这个优先级是非常危险的,这是正确的。任何应用程序都不应该使用它,除非在非常特殊的情况下,即使这样,也要试图将它的使用限制在临时需要。
myss37ts5#
一旦Windows了解到一个程序使用高于正常优先级的优先级,它似乎会限制进程的优先级。将优先级从IDLE设置为REALTIME不会改变CPU使用率。我发现我的多处理器AMD CPU,如果我放弃了一个CPU不像最后一个CPU的使用率将达到最大值,最后一个CPU仍然闲置。处理器的速度增加到75%对我的四AMD。使用任务管理器-〉选择进程-〉右键单击进程-〉选择-〉设置相似性单击除最后一个处理器之外的所有处理器。CPU使用率将增加到剩余处理器的最大值,如果处理视频将增加,则帧数将增加。
5rgfhyps6#
像所有其他答案一样,在真实的处理之前,该程序具有最高优先级,在该程序被处理之前,不处理任何内容。在我的奔腾4机器上,我把Minecraft设置为真实的,因为它大大提高了游戏性能,而且系统看起来完全稳定。所以实时并不像看起来那么糟糕,只是如果你有一个多核设置程序的亲和力到一个特定的核心或核心(只是不是全部,只是为了让其他一切都能够运行,以防真实的设置程序挂起)并将优先级设置为实时。
zaqlnxep7#
它基本上是更高/更大的一切。键盘是一个较低的优先级比真实的进程。这意味着该进程将被视为快于键盘,如果它不能处理,那么你的键盘是缓慢的。
bgtovc5b8#
实时进程优先级主要用于使一个特定的进程运行得更快,而实际上是以牺牲其他一切为代价的。我个人将Discord bot的进程优先级设置为实时,因为该bot是轻量级的,我需要保持它的快速响应,但随机更改进程优先级将是一个坏主意,除非你知道你在做什么,例如,如果你把谷歌浏览器的优先级设置为低,它不会引起任何问题,但如果你把注册表的优先级设置为低,它可能会引起足够多的问题。只是不要设置一个沉重的程序实时,除非它正在运行的设备是完全专用于该程序。
8条答案
按热度按时间92vpleto1#
一个实时优先级线程永远不会被定时器中断抢占,并且以比系统中任何其他线程更高的优先级运行。因此,一个受CPU限制的实时优先级线程可以完全摧毁一台机器。
创建实时优先级线程需要权限(SeIncreaseBasePriorityPrivilege),因此只能由管理用户执行。
对于Vista和更高版本,对于需要实时优先级运行的应用程序,一个选择是使用Multimedia Class Scheduler Service(MMCSS),让它管理线程优先级。MMCSS将防止应用程序使用过多的CPU时间,这样你就不必担心机器死机。
ukqbszuj2#
简单地说,“真实的”优先级类比“高”优先级类高。我不认为还有什么比这更重要的。哦,是的-你必须有
SeIncreaseBasePriorityPrivilege
才能把线程放入实时类。Windows有时会出于各种原因提高线程的优先级,但它不会将线程的优先级提高到另一个优先级类别。它也不会提高实时优先级类别中线程的优先级。因此,高优先级线程不会自动临时提高到实时优先级类别。
Russinovich关于Windows如何处理优先级的“Inside Windows”一章是学习如何工作的很好的资源:
请注意,在普通Windows系统上,实时优先级线程绝对没有问题--它们不一定是运行在专用机器上的特殊进程。我想多媒体驱动程序和/或进程可能需要实时优先级线程。然而,这样的线程不应该需要太多CPU --它应该阻塞大部分时间,以便正常系统事件得到处理。
yhxst69z3#
这是最高的可用优先级设置,通常只用于专门运行特定程序的机器,实际上它已经高到足以导致键盘和鼠标线程饥饿,以至于它们变得没有响应。
所以基本上,如果你一定要问,不要用它:)
0yycz8jy4#
“实时”是进程可用的最高优先级 * 类 *。因此,它与“高”的不同之处在于高一级,与“高于正常”的不同之处在于高两级。
类似地,实时也是一个线程优先级。
进程优先级 class 提高或降低进程中所有有效的线程优先级,因此被视为“基本优先级”。
因此,流程具有:
1.基本进程优先级类。
1.单个线程优先级,基优先级类的偏移量。
由于实时性应该是为那些绝对必须抢占其他运行进程的应用程序保留的,所以有一个特殊的安全特权来防止对它的随意使用,这是由安全策略定义的。
在NT6+(Vista+)中,使用Vista多媒体类调度程序是在“非”实时操作系统中实现实时操作的正确方法。在大多数情况下,它是有效的,但并不完美,因为操作系统不是为实时操作设计的。
微软认为这个优先级是非常危险的,这是正确的。任何应用程序都不应该使用它,除非在非常特殊的情况下,即使这样,也要试图将它的使用限制在临时需要。
myss37ts5#
一旦Windows了解到一个程序使用高于正常优先级的优先级,它似乎会限制进程的优先级。
将优先级从IDLE设置为REALTIME不会改变CPU使用率。
我发现我的多处理器AMD CPU,如果我放弃了一个CPU不像最后一个CPU的使用率将达到最大值,最后一个CPU仍然闲置。处理器的速度增加到75%对我的四AMD。
使用任务管理器-〉选择进程-〉右键单击进程-〉选择-〉设置相似性单击除最后一个处理器之外的所有处理器。CPU使用率将增加到剩余处理器的最大值,如果处理视频将增加,则帧数将增加。
5rgfhyps6#
像所有其他答案一样,在真实的处理之前,该程序具有最高优先级,在该程序被处理之前,不处理任何内容。
在我的奔腾4机器上,我把Minecraft设置为真实的,因为它大大提高了游戏性能,而且系统看起来完全稳定。所以实时并不像看起来那么糟糕,只是如果你有一个多核设置程序的亲和力到一个特定的核心或核心(只是不是全部,只是为了让其他一切都能够运行,以防真实的设置程序挂起)并将优先级设置为实时。
zaqlnxep7#
它基本上是更高/更大的一切。键盘是一个较低的优先级比真实的进程。这意味着该进程将被视为快于键盘,如果它不能处理,那么你的键盘是缓慢的。
bgtovc5b8#
实时进程优先级主要用于使一个特定的进程运行得更快,而实际上是以牺牲其他一切为代价的。我个人将Discord bot的进程优先级设置为实时,因为该bot是轻量级的,我需要保持它的快速响应,但随机更改进程优先级将是一个坏主意,除非你知道你在做什么,例如,如果你把谷歌浏览器的优先级设置为低,它不会引起任何问题,但如果你把注册表的优先级设置为低,它可能会引起足够多的问题。只是不要设置一个沉重的程序实时,除非它正在运行的设备是完全专用于该程序。