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
,除了文件监视器之外,事件循环中没有别的,程序将退出。