我正在使用linux,並且我有一個有子目錄的目錄,並且子目錄內有文件 。我必須監視文件中的更改。在C++中,我使用boost。我每30秒檢查一次所有目錄,並檢查last_write_time。它主要起作用。但每次執行此操作時,我的CPU都會出現問題,並且我看到只有15%-25%的CPU使用率 僅用於此程序。我已閱讀有關inotify。如果我使用inotify,那麼CPU使用率或多或少一樣,還是會有所提高?我有什麼好的替代方案嗎?監控文件更改C++ linux
11
A
回答
13
當您使用inotify時,您不需要輪詢所有文件以檢查是否有更改。你會得到一個回叫系統,當觀看的文件或目錄發生變化時通知你。內核/文件系統已經有了這些信息,所以資源/ CPU使用率不僅僅被移動到另一個應用程序,它實際上被減少了。
Monitor file system activity with inotify提供了更多細節爲什麼使用inotify,顯示其基本用法,並幫助您設置它。
+0
非常感謝您的回答。我會試試看。 – user1566277 2013-02-19 09:52:17
0
http://linux.die.net/man/7/inotify這應該可以幫助你擺脫你面臨的問題!
相關問題
- 1. 實時監控文件更改
- 2. C#:使用FileSystemWatcher監視文件更改
- 3. 監視文件更改
- 4. 監視文件的更改
- 5. GCD文件監控 - 父文件夾更改?
- 6. 使用舊的glibc監視Linux中的文件更改
- 7. c linux檢查文件是否更新/更改/修改?
- 8. MySql備份/更改監控
- 9. 更改任何Linux文件
- 10. 監視文件夾的更改
- 11. PHP:監視文本文件的更改
- 12. 在linux中監視文件
- 13. 文件/文件夾監控
- 14. 監控沒有連續運行的文件夾中的更改
- 15. 在循環中使用select()監控文件更改
- 16. 通過Java監控文件系統更改
- 17. python文件監控
- 18. 蟒蛇插件來監控Linux系統
- 19. Java中的文件更改監聽器
- 20. 如何監視Python文件的更改?
- 21. cron作業來監視文件更改
- 22. 監聽文件夾的更改java
- 23. FileSystemWatcher和監視配置文件更改
- 24. 監視文件更改 - Asyncio和Flask
- 25. Arch Linux的Pacman的監控
- 26. Linux監控 - Nagios和nrpe
- 27. 監控一個PID linux
- 28. 監控和ftp新添加的文件在Linux上 - 修改現有的代碼
- 29. C# - 監視是否屬性只讀任何文件已更改
- 30. 監控頁面的更改嗎?
性能將大大提高,因爲您不必瀏覽所有文件和子目錄。相反,當文件或目錄發生更改時,您會收到通知。 Inotify可能是Linux上的最佳方式。 – 2013-02-19 09:43:19
感謝您輸入Joachim。我會嘗試。 – user1566277 2013-02-19 09:50:57