有人可以解释持久手表的工作原理吗?
如果正在观看文件的变化,是否会在PC上占用一些资源?
谢谢;)
答案 0 :(得分:10)
fs.watchFile
创建一个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
Interval是无法使用inotify的相关因素 - 它决定了 轮询更新的时间。 持久性与程序应该如何行动有关 watchFile正在运行。默认是退出。
据我所知,需要3-5秒才能注意到这些变化 默认设置),我可以加快速度吗?
在linux上,它使用inotify - 更快
观看数百个文件有多重?
重。它并不意味着这一点。
来源:Ryan Dahl在Node.js Google Group发帖
总结
如果您使用的是Linux,interval
选项对所有人都没有影响
如果你没有设置persistent
,除了文件观察器之外,事件循环中没有其他内容,程序将退出。