我在服务器上有一个缓存引擎,该引擎缓存在根目录下访问的所有文件。我正在考虑使用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/

10-09 18:14