Python睡眠时CPU消耗没有下降()

Python睡眠时CPU消耗没有下降(),python,cpu,consumption,Python,Cpu,Consumption,我的代码有两个作业,第一个消耗CPU 0.3%,第二个消耗CPU 80%。这两项工作重复进行,如下所示: while True: job1() job2() 我发现在第一个循环之后,CPU消耗没有下降,即使它在job1()中工作,消耗始终是80% 所以我修改代码如下: n = 0 while True: n += 1 if n > 1: print 'to sleep' time.sleep(100000000) continue job1()

我的代码有两个作业,第一个消耗CPU 0.3%,第二个消耗CPU 80%。这两项工作重复进行,如下所示:

while True:
  job1()
  job2()
我发现在第一个循环之后,CPU消耗没有下降,即使它在job1()中工作,消耗始终是80%

所以我修改代码如下:

n = 0
while True:
  n += 1
  if n > 1:
    print 'to sleep'
    time.sleep(100000000)
    continue
  job1()
  job2()
我发现当它处于
sleep()
状态时,CPU消耗为80%。为什么会发生这种情况?

函数的
sleep()
功能暂停进程的执行,这意味着可以安排其他作业在CPU上执行。这可以解释高使用率的原因,特别是如果您在后台运行其他需要CPU的任务


了解您如何衡量CPU使用情况会很有帮助。

我不理解您的第二段代码。它似乎会运行一次作业,然后在随后的每个循环中,它都会休眠,然后
continue
跳过作业,然后再次休眠,再也不做任何有用的工作。睡眠时间是三年@JohnZwinck我猜OP计算出来的时间应该足够长,以找出CPU保持相当高的原因。我想检查CPU消耗,即使在睡眠状态下也不要降低它()可能
job2()
永不返回?你可以放一些打印语句来检查这一点。但是肯定
time.sleep()
并没有消耗您的CPU周期。我肯定job2返回了。我猜job2可能导入了一些模块,当python在后台进行垃圾收集时,这些模块将消耗大量CPU(异步)。