Chokidar(Node.js)效率如何?

时间:2013-10-13 09:16:54

标签: node.js npm fs

我在服务器上有一个缓存引擎,用于缓存在根目录下访问的所有文件。我正在考虑使用Chokidar来查看整个目录树(递归)以进行文件更改并相应地更新缓存。但我担心如果一个子目录包含数十万个文件会发生什么 - Chokidar会有多高效?

1 个答案:

答案 0 :(得分:10)

Chokidar的效率取决于它运行的操作系统。

在OS X上,它使用一个模块来提供对本机fsevents API的访问,这非常有效。

在其他系统上,它使用node.js的fs.watchfs.watchFile API。在幕后,fs.watch使用各种系统API来通知变更,这可能是合理有效的。 fs.watchFile使用统计轮询,这对于您描述的目录来说肯定是不合适的。

我的建议是你设置chokidar选项usePolling: false并尝试一下,监控你的cpu负载。

更新(2015年7月):Chokidar自最初编写以来已经有了很大改进,并且轮询不再是任何平台上的默认设置。