CPU实用程序依赖的因素是什么?

时间:2017-04-10 13:44:46

标签: cpu-usage

我正在编写一个java程序。如果此进程创建的运行时或线程数增加会影响总cpu实用程序吗?

1 个答案:

答案 0 :(得分:0)

我假设您正在执行一项正在执行固定工作量的程序,并且该工作在仅具有一个核心的处理器上执行CPU绑定。

如果您的应用程序具有可以被多线程利用的并行性,那么智能地使用多个线程将增加CPU利用率,从而减少执行时间。例如,如果任务的并行区域在A秒内执行,利用率高于空闲10%,并且它可以支持5个线程,则执行时间变为A / 5秒,CPU利用率增加5倍或者50%。我假设一个CPU绑定任务。对于阻塞任务,您的执行时间可能会减少,而不会影响CPU利用率。

如果您的任务无法利用并行性,那么由于不必要的线程开销,CPU利用率会有一些名义上的增加。

还有其他问题会影响CPU利用率,例如在应用程序执行之前CPU的负载是多少。如果它已经很高,那么多线程可能会引起很多颠簸。另外,如果你的并行块太短,那么就会有线程创建和破坏开销改变方程式。

同样,给定可以并行化的相同任务A,序列化它将增加总运行时间并降低CPU利用率。

请注意,在上述情况下,完成的总工作量是不变的。