增加线程优先级会使我的长计算 运行 更快吗?

Will increasing thread priority make my long computation run faster?

假设我有一个 GUI 应用程序,可以为用户执行长时间的计算(例如,视频处理)。我是否应该增加计算的优先级 process/thread 以使其 运行 更快?这样做会有什么危害?

嗯,如果您花更多的时间处理视频,例如,从磁盘读取视频的可用资源可能会减少。

唯一真正的方法是测试...

如果您有一个需要 5 分钟处理器时间的处理,则需要 5 分钟来处理。在一个不繁忙的系统上,这是唯一的应用程序 运行,它不太可能产生很大的不同。

但是,在有其他任务的系统上,您将从这些任务中窃取处理时间,并且用户可能会认为您的系统使他们的计算机挂起。

如果您有一个很长的 运行 任务,您实际上最好降低优先级,以便用户可以继续做其他事情。这就是多任务处理背后的原理...

一般不会。在长时间的计算过程中,很少有人会更喜欢非响应系统而不是计算时间稍长的响应系统。

还有多种原因会导致优先级增加导致计算实际花费的时间更长。例如,增加对其他任务的抢占可能会耗尽 CPU 缓存,使这些任务花费更长的时间。由于各种原因,包括增加核心间争用,这可能会减慢您关心的任务。

当您不能容忍不可预测或增加的延迟时,您可以提高优先级。