Насколько эффективен Chokidar (узел.js)?

У меня есть механизм кэширования на сервере, который кэширует все файлы, доступные в корневом каталоге. Я думаю использовать Chokidar для просмотра всего дерева каталогов (рекурсивно) для изменения файлов и обновления кэша соответственно. Но меня беспокоит, что произойдет, если подкаталог содержит сотни тысяч файлов - насколько эффективным будет Chokidar?

1 ответов


эффективность Chokidar зависит от того, на какой операционной системе он работает.

на OS X, он использует модуль, который обеспечивает доступ к родной fsevents API, который чрезвычайно эффективен.

в других системах он использует node.в JS это fs.watch или fs.watchFile API-интерфейсы. Под капотом, fs.watch использует различные системные API для уведомления об изменениях, которые могут быть достаточно эффективными. fs.watchFile использует опрос статистики, который определенно будет не подходит для каталогов такого размера, как вы описываете.

мое предложение заключается в том, что вы установите опцию chokidar usePolling: false и попробуйте, контролируя нагрузку на процессор.

Update (июль 2015): Chokidar был значительно улучшен, так как это было первоначально написано, и опрос больше не является значением по умолчанию на любой платформе.