我正在开发嵌入式Linux系统。
我尝试使用inotify来监控更改。但是,当我试图监视大量文件夹(比如超过6000个文件夹)时,inotify使用了大量内存(大约25-30MB)。众所周知,嵌入式系统中25-30MB被认为很大......
我的问题是;
答案 0 :(得分:2)
据我所知,使用未修补的Linux内核无法进行递归监视。另见https://superuser.com/questions/118642/recursive-filesystem-notifications-inotify-for-ubuntu-karmic-koala。也许 fanotify 会对你有用,但它需要一个内核补丁。
答案 1 :(得分:0)
答案 2 :(得分:0)
使用inotify
时,递归监控目录是不可避免的
参考:
http://en.wikipedia.org/wiki/Inotify#Limitations
为了提高inotify(7)
性能(可能减少内存使用量),我的建议是:
每当您开始观看目录时,只需关注您感兴趣的inotify_event
类型(尽可能少),您可以调整mask
函数的inotify_add_watch(2)
参数来实现此目的。将mask
参数值设置为IN_ALL_EVENTS
以监控inotify_event
的所有类型有时是不必要的。
希望这会有所帮助。