我在服务器上有一个缓存引擎,它缓存根目录下访问的所有文件。我正在考虑使用Chokidar来(递归地)查看整个目录树中的文件更改,并相应地更新缓存。但我担心的是,如果一个子目录包含数十万个文件,会发生什么-- Chokidar的效率如何?
发布于 2014-10-30 21:48:29
Chokidar的效率取决于它运行的操作系统。
在OS上,它使用一个模块来提供对本地fsevents应用程序接口的访问,这是非常有效的。
在其他系统上,它使用node.js的fs.watch或fs.watchFile API。在幕后,fs.watch使用各种系统API来通知更改,这可能是相当有效的。fs.watchFile使用统计轮询,这绝对不适合于您所描述的那么大的目录。
我的建议是设置chokidar选项usePolling: false并尝试一下,监视您的cpu负载。
更新(2015年7月):自从最初编写这篇文章以来,Chokidar已经有了很大的改进,轮询不再是任何平台上的默认设置。
https://stackoverflow.com/questions/19343584
复制相似问题