Node.js fs.watchFile постоянные часы механики? - PullRequest
13 голосов
/ 19 декабря 2010

Может кто-нибудь объяснить, как работают постоянные часы?

Есть ли какие-то ресурсы на ПК, если он просматривает файл (ы) на предмет изменений?

Спасибо;)

1 Ответ

10 голосов
/ 19 декабря 2010

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, и в цикле событий нет ничего, кроме средства просмотра файлов, программа завершит работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...