我正在尝试创建一个简单的应用程序,浪费cpu周期进行多核研究。我创建的那个占用了100%的核心用量。我希望它大约30%60%70%,我应该做哪些调整才能实现这个目标?提前谢谢。
当前版本:
a=999999999
while True:
a=a/2
答案 0 :(得分:1)
从大量开始是不必要的,因为将数字除以2将很快一次又一次地以0/2
快速结束。此外,您不必在循环中实际执行任何操作以消耗CPU周期 - 仅仅循环操作就足够了。这就是为什么任何无限循环,即使像while 1: pass
这样简单的东西,也会占用整个CPU核心直到被杀死。为避免占用整个核心,请使用time.sleep
暂停执行该线程一段时间。此函数采用单个参数表示线程休眠的时间(以秒为单位)。它接受一个浮点数。
import time
while 1:
time.sleep(0.0001)
只需为您要测试的每个核心运行此脚本的实例(对于您希望加入特定系统的工作负载具有适当的休眠时间)。
请注意,某些操作系统可能不支持小于1毫秒的睡眠时间,导致睡眠时间缩短为零,这使得它们与此策略不兼容。有关详情,请参阅Python: high precision time.sleep和How accurate is python's time.sleep()?。