我有一个程序运行在一台旧笔记本电脑上,它一直在监视一个Dropbox文件夹,以便添加新文件。当Python进程运行时,它在双核机器上使用了接近50%的CPU,而在8核机器上则使用了大约12%的CPU,这表明它使用了接近100%的一个内核)。这会放出很多热量。在
相关的代码位是:
while True:
files = dict ([(f, None) for f in os.listdir(path_to_watch)])
if len(files) > 0:
print "You have %s new file/s!" % len(files)
time.sleep(20)
在没有新文件的情况下,当然大部分时间都应该花在time.sleep()
等待中,我不认为这会占用大量的CPU资源,the answers here似乎说它不应该如此。在
所以有两个问题:
1)既然time.sleep()
不应该如此占用CPU,那么这是怎么回事?在
2)是否有另一种方法可以监控文件夹中的更改,从而降低运行速度?在
1)只有在有新文件时才会调用睡眠。在
这应该更好:
2)是的,尤其是使用linux时。我建议你去调查一下Gamin。在
示例:
^{pr2}$还有一个跨平台的API来监视文件系统的更改:Watchdog
相关问题 更多 >
编程相关推荐