Tôi đang làm việc với linux và tôi có một thư mục có thư mục con và có các tệp bên trong các thư mục con. Tôi phải theo dõi những thay đổi trong tập tin. Trong C++ tôi đang sử dụng boost. Tôi đi qua tất cả các thư mục sau mỗi 30 giây và kiểm tra last_write_time. Về cơ bản, nó hoạt động. Nhưng mỗi lần hành động này được thực hiện, CPU của tôi đi hạt và tôi thấy 15% -25% CPU sử dụng chỉ dành cho chương trình này ở trên cùng. Tôi đã đọc về sự bất công. Nếu tôi sử dụng inotify tôi sẽ có nhiều hơn hoặc ít hơn cùng một CPU sử dụng hoặc nó sẽ được cải thiện? Có bất kỳ lựa chọn thay thế tốt cho những gì tôi đang làm?giám sát thay đổi tập tin c + + linux
Trả lời
Khi bạn sử dụng inotify, bạn không cần phải thăm dò ý kiến cho tất cả các tệp để kiểm tra xem có thay đổi hay không. Bạn nhận được một hệ thống gọi lại thông báo cho bạn khi một tập tin hoặc thư mục đã xem bị thay đổi.
Hệ thống tệp/hạt nhân đã có thông tin này, do đó việc sử dụng tài nguyên/CPU không chỉ được chuyển sang ứng dụng khác, nó thực sự bị giảm.
Monitor file system activity with inotify cung cấp thêm chi tiết lý do sử dụng inotify, hiển thị mức sử dụng cơ bản và giúp bạn thiết lập.
Rất cám ơn câu trả lời của bạn. Tôi sẽ thử. – user1566277
http://linux.die.net/man/7/inotify điều này sẽ giúp bạn loại bỏ vấn đề mà bạn gặp phải!
- 1. tệp giám sát cơ sở giám sát python cho các thay đổi
- 2. Làm thế nào để giám sát hiệu quả một thư mục để thay đổi trên linux?
- 3. Giám sát danh bạ cho các thay đổi
- 4. Giám sát sửa đổi thư mục
- 5. kịch bản lệnh linux giám sát các thay đổi tệp trong các thư mục (như autospec!)
- 6. Giám sát
- 7. Giám sát ZooKeeper với Giám sát
- 8. giám sát với chọn
- 9. Giám sát Memcached với tập lệnh PHP
- 10. Giám sát Thùng rác trong C#
- 11. giám sát tệp và truy cập thư mục trên linux
- 12. Giám sát đường âm thanh
- 13. Giám sát IIS 6.0
- 14. Giám sát celerybeat với người giám sát và virtualenv
- 15. Giám sát ứng dụng virtualenv django qua người giám sát
- 16. Giám sát nhiệt độ CPU
- 17. giám sát thư mục
- 18. Giám sát USB OSX
- 19. md5sum của tập tin trong Linux C
- 20. Giám sát lưu lượng mạng
- 21. Phát hiện việc tạo tập tin với cơ quan giám sát
- 22. ASP.Net giám sát thư mục debug HttpException
- 23. Giám sát PHP/Curl sử dụng Fiddler
- 24. Làm thế nào để giám sát SQL Server Agent Thông tin công việc trong C#
- 25. Cách nhắn tin cho người giám sát trong Mục tiêu C
- 26. Giám sát khai thác tệp ZIP Python
- 27. Instrumentation.ActivityMonitor không giám sát Intent.ACTION_CALL
- 28. Cách giám sát khi vị trí màn hình của Kiểm soát thay đổi?
- 29. Giám sát thư mục trong Cocoa/Cocoa Touch
- 30. Giám sát nội dung của tệp/thư mục?
Hiệu suất sẽ được cải thiện rất nhiều, vì bạn sẽ không phải trải qua tất cả các tệp và thư mục con. Thay vào đó, bạn sẽ nhận được thông báo khi một tệp hoặc thư mục đã thay đổi. Inotify có lẽ là cách tốt nhất để đi trên Linux. –
Cảm ơn bạn đã nhập Joachim. Tôi sẽ thử điều đó. – user1566277