如何限制特定进程的CPU使用?

时间:2011-04-07 10:58:00

标签: c++ windows process cpu

我如何将CPU使用率限制为10%,例如对于Windows C ++中的特定进程?

4 个答案:

答案 0 :(得分:2)

您可以使用Sleep(x) - 会减慢您的程序执行速度,但会释放CPU周期 其中x是以毫秒为单位的时间

答案 1 :(得分:2)

这很少需要,也许线程优先级是更好的解决方案但是因为你问过,你应该做什么:

  1. 完成“稳定”工作的一小部分,即计算
  2. 测量步骤1)花了多少时间,假设它是twork毫秒
  3. {li> Sleep() (100/percent - 1)*twork毫秒percent是您所需的负载
  4. 回到1。
  5. 为了使其运作良好,您必须非常谨慎地选择计算的“分数”有多大并且某些任务难以分割。单个部分应该占用大约40到250毫秒左右,如果花费更少,睡眠和测量的开销可能变得很大,如果更多,使用10%CPU的错觉将消失,看起来你的线程是在0到100%CPU之间振荡(无论如何都会发生这种情况,但是如果你做得足够快,那么看起来你只需要采取任何百分比)。还有两点需要注意:首先,正如前面提到的,这是在线程级别,而不是进程级别;第二,你的工作必须是真正的CPU工作,磁盘/设备/网络I / O通常需要大量的等待而且不占用太多的CPU。

答案 2 :(得分:1)

这是OS的工作,你无法控制它。

答案 3 :(得分:0)

您不能将其限制为10%,但您可以降低其优先级并将其限制为仅使用一个CPU核心。