Я работаю с Linux, и у меня есть каталог, который имеет подкаталоги и есть файлы
внутри подкаталогов. Я должен следить за изменениями в файле. В C ++ я использую boost. Я прохожу все каталоги каждые 30 секунд и проверяю last_write_time. В принципе это работает. Но каждый раз, когда это действие выполняется, мой процессор сходит с ума, и я вижу 15% -25% загрузки процессора
только для этой программы в топе. Я читал об inotify. Если я использую inotify, будет ли у меня более или менее такое же использование процессора, или оно будет улучшено? Есть ли хорошие альтернативы тому, что я делаю?
Когда вы используете inotify, вам не требуется опрашивать все файлы, чтобы проверить, есть ли изменения. Вы получаете систему обратного вызова, которая уведомляет вас об изменении просматриваемого файла или каталога.
Ядро / файловая система уже имеет эту информацию, поэтому использование ресурсов / ЦП не просто переносится в другое приложение, оно фактически сокращается.
Мониторинг активности файловой системы с помощью inotify предоставляет более подробную информацию о том, почему использовать inotify, показывает его основное использование и помогает вам настроить его.
http://linux.die.net/man/7/inotify это должно помочь вам избавиться от проблемы, с которой вы столкнулись!