我正在使用linux,我有一个目录,其中包含子目录和文件 在子目录中。我必须监视文件中的更改。在C ++中我使用boost。我每隔30秒检查一次所有目录并查看last_write_time。原则上,它的工作原理。但每次执行此操作时,我的CPU都会疯狂,我看到15%-25%的CPU使用率 只是为了这个程序在顶部。我读过关于inotify的文章。如果我使用inotify,我会有或多或少相同的CPU使用率,还是会改进?对我正在做的事情有什么好的选择吗?
答案 0 :(得分:15)
使用inotify时,不需要轮询所有文件以检查是否有更改。您将获得一个回调系统,该系统会在监视文件或目录发生更改时通知您。
内核/文件系统已经有了这些信息,所以资源/ CPU的使用不仅仅是移动到另一个应用程序,实际上已经减少了。
Monitor file system activity with inotify提供了有关使用inotify的更多详细信息,显示了其基本用法并帮助您进行设置。
答案 1 :(得分:1)
http://linux.die.net/man/7/inotify这可以帮助你摆脱面临的问题!