gpt4 book ai didi

Node.js fs.watchFile 持久监视机制?

转载 作者:IT老高 更新时间:2023-10-28 23:06:09 28 4
gpt4 key购买 nike

有人能解释一下持久 watch 的工作原理吗?

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

谢谢 ;)

最佳答案

fs.watchFile 创建一个 StatWatcher,然后对正在监视的文件执行 stat。这在低级别究竟是如何发生的(除了进行明显的 stats 调用)取决于编译 Node 时使用的事件循环实现。

所以是的,它占用了一点 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 is relavent where inotify is not available - it determines how long to poll for updates. Persistent has to do with how the program should act when nothing but watchFile is running. The default is to exit.

As far as I saw, it takes 3--5 seconds to notice the changes (with the default settings), can i make it faster?

在 linux 上它使用 inotify - 更快

how heavy is watching hundreds of files?

沉重。这不是为了那个。

来源:发布于 Node.js Google Group作者:瑞安达尔

总结
如果您使用的是 linux,则 interval 选项完全没有效果。
如果你没有设置persistent,并且事件循环中除了文件观察器之外没有其他东西,程序将退出。

关于Node.js fs.watchFile 持久监视机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482352/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com