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

时间:2015-09-07 19:35:13

标签: multithreading language-agnostic cpu-usage thread-priority

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

3 个答案:

答案 0 :(得分:1)

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

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

如果你有一个长时间运行的任务,你实际上更好地降低了优先级,以便用户可以继续做其他事情。这是多任务背后的原则......

答案 1 :(得分:1)

一般没有。很少有人在长时间的计算中更喜欢无响应的系统而不是响应系统,而计算需要更长的时间。

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

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

答案 2 :(得分:0)

好吧,如果您花费更多时间处理视频,那么可能有更少的资源可用于从磁盘读取视频。

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