我如何将CPU使用率限制为10%,例如对于Windows C ++中的特定进程?
答案 0 :(得分:2)
您可以使用Sleep(x)
- 会减慢您的程序执行速度,但会释放CPU周期
其中x是以毫秒为单位的时间
答案 1 :(得分:2)
这很少需要,也许线程优先级是更好的解决方案但是因为你问过,你应该做什么:
twork
毫秒Sleep()
(100/percent - 1)*twork
毫秒percent
是您所需的负载
为了使其运作良好,您必须非常谨慎地选择计算的“分数”有多大并且某些任务难以分割。单个部分应该占用大约40到250毫秒左右,如果花费更少,睡眠和测量的开销可能变得很大,如果更多,使用10%CPU的错觉将消失,看起来你的线程是在0到100%CPU之间振荡(无论如何都会发生这种情况,但是如果你做得足够快,那么看起来你只需要采取任何百分比)。还有两点需要注意:首先,正如前面提到的,这是在线程级别,而不是进程级别;第二,你的工作必须是真正的CPU工作,磁盘/设备/网络I / O通常需要大量的等待而且不占用太多的CPU。
答案 2 :(得分:1)
这是OS的工作,你无法控制它。
答案 3 :(得分:0)
您不能将其限制为10%,但您可以降低其优先级并将其限制为仅使用一个CPU核心。