将进程优先级设置为高:危险吗?

将进程优先级设置为高:危险吗?

我读到过将某些东西设置为实时是大忌,所以我不会这么做。但我确实有一个应用程序需要确保它在系统中始终具有最高优先级,因为它对我运行的其他应用程序至关重要。将优先级设置为高(比实时低一级)是否有危险?

另外,我如何通过更改快捷方式目标来实现这一点?命令是什么?

答案1

实时不一定是“禁忌”。它只是可能会使其他进程无法获得 CPU 周期。有些应用程序无法处理这种情况。这是你必须尝试的事情。

高应该不会带来什么问题。但是,您仍然需要监控系统,以查看所有应用程序是否运行正常。

以下是如何通过命令行更改进程,您可以将其放入快捷方式中:

http://support.microsoft.com/kb/191771

答案2

我想说这要视情况而定。如果你的电脑只有一个核心/CPU,而且这是一项 CPU 密集型任务,我不会将其设置为实时。高可能没问题,但这需要试验。

如果您有多个核心,并且该过程是单线程的:请继续,按您的需要进行设置。即使一个核心始终处于 100% 负载,您的其他核心仍将处于空闲状态。

如果您有多个核心,并且进程是多线程的:这将取决于所有线程是否都有 100% 的负载。有些程序有一个“管理器”线程,它将工作分派给其他线程,但本身不做很多处理。这样可以让一个核心几乎空闲,从而允许高优先级或实时优先级。

其他程序会尝试占用所有核心。在这种情况下,高核心可能没问题,但需要进行试验。

甚至有些处理器也只占用特定数量的核心,可能不会使用所有可用核心。在这种情况下,高优先级或实时优先级应该没问题。

除非您使用的是单核处理器,否则请继续尝试。大多数情况下,将其设置为高或实时都不会有什么坏处。您也可以在任务管理器中设置进程的亲和性(可以使用多少个内核)。这样,您可以更好地平衡 CPU 上的负载。它还可以帮助降低温度和功耗等。

答案3

这是否适合您完全取决于您的应用程序的作用。如果它正在处理一个不需要等待 I/O 的漫长计算,那么以高优先级运行它可能会让您的机器瘫痪。但如果问题是延迟,并且您的应用程序只需要在响应 I/O 完成或类似事件时非常快速地唤醒,那么进行一些快速处理然后立即再次进入睡眠状态,这样就可以了。

答案4

一般而言,任何将其主要进程优先级设置为非正常优先级的应用程序都会对机器上的其他所有程序的性能产生不利影响。因此,如果每个应用程序都采取这种自以为是的态度,最终什么都无法正常工作。

使用更高优先级的正确方法是在单独线程的任务中,而不是在应用程序中。并且这些任务应该只在需要时运行,然后在没有工作要做时停止或暂停。如果在编写应用程序时您觉得需要更改优先级基准级别,那么请仔细考虑如何使需要更改的间隔尽可能短。

在进行优先级提升之类的事情之前,也许值得投资一本关于并发和并行处理的书籍或课程。

相关内容