我在服务器上有一个缓存引擎,该引擎缓存在根目录下访问的所有文件。我正在考虑使用Chokidar来(递归地)查看整个目录树中的文件更改,并相应地更新缓存。但是我担心如果子目录包含成千上万个文件会发生什么-Chokidar的效率如何?
最佳答案
Chokidar的效率取决于它所运行的操作系统。
在OS X上,它使用提供对本地fsevents
API的访问的模块,该模块非常高效。
在其他系统上,它使用node.js的 fs.watch
或 fs.watchFile
API。在后台,fs.watch
使用各种系统API来通知更改,这可能是相当有效的。 fs.watchFile
使用统计信息轮询,这绝对不适用于您所描述的目录。
我的建议是您设置chokidar选项usePolling: false
并尝试一下,以监视您的cpu负载。
更新(2015年7月):自最初编写以来,Chokidar已得到实质性改进,并且轮询不再是任何平台上的默认设置。
关于node.js - Chokidar(Node.js)的效率如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19343584/