用 python 浪费 cpu 个周期

Wasting cpu cycles with python

我正在尝试创建一个简单的应用程序,它会浪费 cpu 周期用于多核研究。我创建的那个占用了100%的核心使用率。我希望它在 30% 60% 70% 左右,我应该进行哪些调整才能实现这一目标?提前致谢。

当前版本:

a=999999999
while True:
   a=a/2

没有必要从大数开始,因为将一个数除以 2 很快就会一遍又一遍地变成 0/2。此外,您不必在循环中实际执行任何操作来消耗 CPU 个周期 - 仅循环操作就足够了。这就是为什么任何无限循环,甚至像 while 1: pass 这样简单的东西,都会吃掉整个 CPU 核心直到被杀死。为避免占用整个核心,请使用time.sleep 暂停线程执行一段时间。此函数采用单个参数表示线程休眠的时间(以秒为单位)。它接受一个浮点数。

import time
while 1:
    time.sleep(0.0001)

只需 运行 为您要测试的每个核心提供此脚本的一个实例(对于您要在特定系统上施加的工作负载,具有适当的休眠时间)。

请注意,某些操作系统可能不支持小于一毫秒的休眠时间,导致较短的休眠时间显示为零,使其与此策略不兼容。有关更多信息,请参阅 Python: high precision time.sleep and How accurate is python's time.sleep()?