Ответ 1
fs.watchFile
создает StatWatcher
, который затем выполняет stat
в просматриваемом файле. Как именно это происходит на низком уровне (при выполнении очевидного вызова статистики) зависит от реализации цикла событий, с которой был скомпилирован node.
Итак, да, это занимает немного процессора, но в этом случае вы не можете делать ничего, кроме опроса, т.е. если сама базовая файловая система не выдаст события изменения файла.
См:
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
Дополнительная информация о параметрах
Интервал является relavent, где inotify недоступен - он определяет как долго опросить обновления. Постоянное отношение к тому, как должна действовать программа, когда ничего, кроме Функция watchFile запущена. По умолчанию необходимо выйти.
Насколько я видел, требуется 3-5 секунд, чтобы заметить изменения (с по умолчанию), могу ли я сделать это быстрее?
В linux используется inotify - что быстрее
насколько тяжело смотреть сотни файлов?
Heavy. Это не для этого.
Источник: Опубликовать в Node.js Google Group от Ryan Dahl
В заключение
Если вы используете linux, параметр interval
не имеет никакого эффекта и т.д.
Если вы не установили persistent
, и ничего больше в цикле событий, кроме наблюдателя файлов, программа выйдет.