我在服务器上有一个缓存引擎,它缓存在根目录下访问的所有文件。我正在考虑使用 Chokidar 来观察整个目录树(递归)以进行文件更改并相应地更新缓存。但我担心如果子目录包含数十万个文件会发生什么 - Chokidar 的效率如何?
问问题
19149 次
1 回答
17
Chokidar 的效率取决于它运行的操作系统。
在 OS X 上,它使用一个模块来提供对本机fsevents
API 的访问,这非常有效。
在其他系统上,它使用 node.jsfs.watch
或fs.watchFile
API。在后台,fs.watch
使用各种系统 API 来通知更改,这可能是相当有效的。fs.watchFile
使用统计轮询,这绝对不适合您描述的目录。
我的建议是您设置 chokidar 选项usePolling: false
并试一试,监控您的 CPU 负载。
更新(2015 年 7 月):自最初编写以来,Chokidar 已得到显着改进,并且轮询不再是任何平台上的默认设置。
于 2014-10-30T13:48:28.553 回答