fs.watchFile
создает StatWatcher
, который затем выполняет stat
для просматриваемого файла.Как именно это происходит на низком уровне (помимо выполнения очевидного вызова статистики), зависит от реализации цикла событий, с которым был скомпилирован узел.
Так что да, это занимает немного ресурсов ЦП, но вы можетене делать ничего, кроме опроса здесь, то есть, если сама базовая файловая система не выдаст события изменения файла.
См .:
https://github.com/ry/node/blob/v0.3.2/lib/fs.js#L472
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.h#L39
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.cc#L78
Дополнительная информация о параметрах
Интервал - это относительный, когда inotify недоступен - он определяет, как долго запрашивать обновления.Постоянное связано с тем, как должна действовать программа, когда работает только watchFile.По умолчанию это выход.
Насколько я видел, требуется 3–5 секунд, чтобы заметить изменения (с настройками по умолчанию), могу ли я сделать это быстрее?
В Linux он использует inotify - что быстрее
насколько тяжело смотреть сотни файлов?
Тяжелый.Это не для этого.
Источник: сообщение в Node.js Google Group от Райана Даля
В заключение
Если вы включеныВ linux опция interval
не действует и т.д.
Если вы не установите persistent
, и в цикле событий нет ничего, кроме средства просмотра файлов, программа завершит работу.