一个Python应该有多少CPU时间。睡觉(n) 打电话给我们

2024-05-19 11:29:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序运行在一台旧笔记本电脑上,它一直在监视一个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)是否有另一种方法可以监控文件夹中的更改,从而降低运行速度?在


Tags: 文件文件夹程序运行机器lentime进程sleep
2条回答

1)只有在有新文件时才会调用睡眠。在

这应该更好:

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)

2)是的,尤其是使用linux时。我建议你去调查一下Gamin。在

示例:

^{pr2}$

还有一个跨平台的API来监视文件系统的更改:Watchdog

相关问题 更多 >

    热门问题