流程的“实时”优先级有什么用?


12

以我的经验,将任何进程设置为实时都会使您的计算机速度减慢。如果使您的计算机无法使用,此设置有什么用?


2
如果您具有多核处理器或多处理器系统,则只能为一个核设置亲和力。这样,系统的其余部分将保持响应状态,您可以享受实时过程的其余优点。当然,这仅适用于只需要一个核心即可工作的流程。
AndrejaKo 2011年

Answers:


7

正是您所描述的那样,但代价是将计算机的其余部分减慢到爬网的速度,因此它实时运行该进程,从而使其比其他所有事物都具有更高的优先级。这仅对于时间紧迫的应用程序是必需的,大多数人在日常生活中看不到这些...


一些非常常见的程序,例如声音服务器(PulseAudio和JACK是两个Linux示例),使用实时优先级线程。
user1686 2011年

@grawity:JACK不是服务器,而只是开发工具包。两者都是跨平台的。好的一点是,音频内容需要实时优先级,但是从Windows 7的角度来说,您指定的这些进程没有实时优先级。Windows对于这些类型的进程有一个称为“多媒体类调度程序”的东西……
Tamara Wijsman

jackd那么,如果不是声音服务器,那是什么?(据我到目前为止了解,PA和JACK都以相同的方式工作,因为它们既提供了声音服务器,又提供了访问它的库/工具包...)
user1686 2011年

但这并不能使套件突然成为服务器。我们在这里谈论的是流程,而不是线程...
Tamara Wijsman

1
实时应用程序的其他示例是医疗应用程序和直接控制的机器人技术。正常操作与故障之间的差值为10µs(故障可能涉及某些机器人从悬崖上驶下或患者受到过多的辐射)。
ligos 2011年

2

这似乎没有必要,但是在启动进程时,可以传递参数来将进程设置为以各种优先级运行。任务管理器将其显示为可选设置,因为它是启动进程执行的软件可以为进程设置的选项。大多数软件在“正常”级别下运行,但是默认情况下,偶尔您可能会看到一些正在较低级别运行的软件。我从未见过以高于正常状态启动的软件。

还值得一提的是,在某些情况下,进程可以以最高优先级设置运行,而这似乎并不会严重影响系统性能。例如,如果启动了一个进程并将其分配为只能在8个CPU内核中的1个上工作,则将进程的优先级设置为“实时”将意味着它将消耗一个处理器,剩下7个由处理器使用。操作系统和任何其他软件。在这种情况下,实时执行几乎不会对系统产生影响,但会给高优先级进程带来合理的性能提升。

我几乎从不建议从系统管理器中手动设置一个进程以“实时”运行。这是因为您正在更改可能设计为在一种特定执行状态下运行的进程的执行设置。在某些情况下,更改执行优先级可能会使应用程序崩溃,并且如果这是数据写入操作,则有可能破坏您的数据!

但是,在某些情况下,为进程使用最大执行优先级设置可能是正确的事情,但是即使那样,此类优先级设置也应由控制应用程序而不是最终用户通过系统管理对话框来设置。

我个人建议不要更改任务优先级,除非您真的不在乎它是否崩溃并且任务完全不重要。如果软件文档明确指出您可以提高流程以更快的速度运行,以加快处理器工作量,那么这也是可以接受的,但是,如果您有一种机制,我会有些怀疑应用程序内未提供。

作为个人轶事,我偶尔会手动更改一个过程-软件压缩应用程序。我没有要解压的大规模文件在很长一段时间,但我发现,如果我在赶(啊哈是不耐烦)我可以杀青进程的优先级,并获得性能上的适度凹凸。由于这些应用程序启动了工作任务,然后在完成时关闭,因此我不必担心要设置处理器设置,因为当应用程序完成数据提取后,数据将自行停止。这是我唯一一次发现通过系统管理来控制处理器速度对个人有用。


1
作为程序员,我想不出给程序更多资源会使它崩溃的情况
TheLQ 2011年

作为程序员,是的,但是将进程设置为在特定级别运行可能会导致问题,尤其是如果编写该软件(可能甚至很差)与其他进程同时运行的话。我的建议来自经验和理解,并非所有用户都是开发人员。设置尚未开发的正在运行的进程的优先级肯定会引起意外的行为。我不想吓到任何人,但是,我也不想鼓励其他用户,如果他们的更改可能会造成破坏,那就弄乱它们。
RLH

0

我使用“实时”优先级来加速非游戏笔记本电脑上的游戏。当我在游戏中时,我并不关心后台进程,而通过这种方式分配我的处理能力可以获得更令人愉悦的体验。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.