Node.js fs.watchFile持久的手表机制?

有人可以解释持久的手表如何工作?

如果正在监视文件以进行更改,是否会在PC上占用一些资源?

谢谢 ;)

fs.watchFile创build一个StatWatcher ,然后对正在监视的文件执行stat 。 在低级别(在进行显而易见的统计调用之前)究竟发生了什么,取决于编译了哪个节点的事件循环实现。

所以是的,它占用了一些CPU,但除了在这里进行轮询之外,除了底层文件系统本身将发出文件更改事件之外,您无法执行其他任何操作。

看到:
https://github.com/ry/node/blob/v0.3.2/lib/fs.js#L472
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.h#L39
https://github.com/ry/node/blob/v0.3.2/src/node_stat_watcher.cc#L78

一些参数的更多信息

间隔是相对inotify不可用的 – 它决定多长时间轮询更新。 持久性与程序应该如何运作,除了watchFile运行时。 默认是退出。

据我所知,需要3 – 5秒才能注意到(使用默认设置)的变化,我可以更快?

在Linux上它使用inotify – 这是更快

观看数百个文件有多沉重?

重。 这不是为了这个。

来源:Ryan Dahl在Node.js Google Group上发布

结论是
如果你在Linux上, interval选项没有影响等等。
如果你没有设置persistent ,除了文件监视器之外,事件循环中没有别的,程序将退出。