我不会提供代码,因为它太长了。 python脚本涉及执行在while循环中运行的大量命令。
基本结构
while True:
The meat goes here
with the odd if:
and stuff
现在我已经完成了,我注意到在运行它时,它使用100%CPU,没有例外。我是初学者,并不知道将这个问题归结为什么。我想也许是因为脚本无限期地运行(直到我手动退出),如果它重复循环一次,可能只会对CPU造成负担。我在while的底部添加了time.sleep(1)以查看是否存在没有改进的问题。
有人有什么想法吗?这是一个相当长的事件序列,但它们严重依赖于if语句,而这种语句并不是经常触发的。
之前,100%的CPU使用率发生在特定的if语句之前,所以我真的处于亏损状态。编辑:忘了包含它在unix环境(Debian)中运行
答案 0 :(得分:8)
除非存在妨碍使用CPU的方式(例如,等待磁盘IO或网络IO,或通过休眠暂停执行),否则在程序运行时CPU使用率将始终保持在100%左右。
如果你不希望它一直使用100%的CPU,如果它只是一遍又一遍地检查某个条件,你可能想要在你的循环中添加time.sleep(numberOfSeconds)。
答案 1 :(得分:3)
100%CPU意味着脚本运行良好。我没有看到任何问题。如果它阻止其他程序运行良好,请在较低优先级(不错)下运行脚本
答案 2 :(得分:2)
问题是为什么不使用100%。这是你写的任何东西的默认值。为了不使用100%,你需要有特定的代码,等待发生的事情。如果你有,那么错误就在那段代码中。
答案 3 :(得分:1)
也许break
循环中有continue
或while
,因此您的time.sleep(1)
代码会被跳过。您确定time.sleep(1)
部分正在执行吗?
答案 4 :(得分:0)
问题在于,除非if函数为true,否则循环中没有sleep语句,因此您的代码以荒谬的速度循环,占用了大量处理器速度。
您需要做的就是添加一个带有0.1的睡眠线。
time.sleep(0.1)