我是一个初学者,我制作了这个python脚本,以便我的电脑在祈祷时自动播放“azan”。我意识到当我的程序运行时,它占用了我29.1%的CPU。我怀疑这是因为:
while True:
global azan_subuh, norm_azan
# retrieving current time
current_time = datetime.now().strftime("%I:%M %p")
# playing azan subuh
if current_time == prayer_times[0]:
mixer.music.load(azan_subuh)
mixer.music.play()
time.sleep(3600)
# playing normal azan
elif current_time in prayer_times[2:6]:
mixer.music.load(norm_azan)
mixer.music.play()
time.sleep(3600)
当两个条件都为假时。time.sleep(3600)
是因为祈祷时间间隔至少一个小时。我还意识到当time.sleep(3600)
运行时,该程序只使用0.3%的CPU,这将占用CPU的嫌疑缩小到上面的while循环。在
如何进一步优化我的程序,使它不会占用那么多CPU?在
这是整个剧本。如果在代码的其他部分有任何关于改进程序的建议,请随时发表意见,因为这将对我有很大帮助。在
^{pr2}$
您的脚本消耗CPU时间,因为大多数时间它都在不断地检查是否是某个特殊的时间;检查之间没有延迟,所以这就是所谓的“繁忙循环”。主循环中不到1秒的简单睡眠应该可以解决这个问题,因此它每秒只检查几次,而不是在它完成时检查:
相关问题 更多 >
编程相关推荐