【发布时间】:2010-09-05 08:15:16
【问题描述】:
我只是想知道是否有一种优雅的方法可以为执行密集计算的特定线程设置最大 CPU 负载。
现在我在线程中找到了最耗时的循环(它只进行压缩),并使用带有硬编码值的 GetTickCount() 和 Sleep()。它确保循环持续一段时间,然后休眠一段最短时间。它或多或少地完成了这项工作,即保证线程不会使用超过 50% 的 CPU。
但是,行为取决于 CPU 内核的数量(巨大的劣势)和丑陋的(较小的劣势:))。
有什么想法吗?
【问题讨论】:
-
你想要实现什么样的可见行为?也就是说,这个看门狗想从你的线程中得到什么?他们不应该使用超过 80% 的 CPU 吗?将进程基本优先级设置为空闲是否可以使 WD 平静下来?
标签: c++ performance cpu throttling