Насколько эффективен 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 был значительно улучшен, так как это было первоначально написано, и опрос больше не является значением по умолчанию на любой платформе.