Chokidar(Node.js)的效率如何?
我在服务器上有一个caching引擎,它caching在根目录下访问的所有文件。 我正在考虑使用Chokidar来观察整个目录树(recursion)的文件更改,并相应地更新caching。 但是我担心如果一个子目录包含数十万个文件会发生什么 – Chokidar会有多高效?
Chokidar的效率取决于在哪个操作系统上运行。
在OS X上,它使用一个模块来提供对本地fsevents
API的访问,这非常有效。
在其他系统上,它使用node.js的fs.watch
或fs.watchFile
API。 在引擎盖下, fs.watch
使用各种系统API来通知变化,这可能是合理有效的。 fs.watchFile
使用stat轮询,这对你所描述的目录来说绝对是不合适的。
我的build议是,你设置chokidar选项usePolling: false
并试一试,监视你的CPU负载。
更新(2015年7月):Chokidar已经大幅改善,因为这是最初编写的,投票不再是任何平台上的默认选项。