![](/img/trans.png)
[英]Writing large amount of strings from memory to a file using streams in node.js causing high RAM usage
[英]Massive memory/RAM usage with Chokidar Node.js package from pre-existing files in directory being watched unnecessarily
我在这个用例中使用了 Node.js package “chokidar”:
add
事件,因为当文件以原子方式移动到监视目录时(一旦所有更改完成,它们就会从同一文件系统上的另一个目录移动)...
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
add
事件?chokidar.watch("/my-watched-dir", {
ignoreInitial: true,
})
.on('add', (filepath) => {...}
我也尝试将depth
选项设置为 0 和 1。
应用程序一启动,memory 的使用率就会攀升得非常高(甚至在第一个新文件出现之前第一次触发add
事件)。
并且预存文件数较少时也没有问题,所以不存在应用启动后新文件吞吐量的问题。
据我所知,Linux平台上的chokidar等库会直接使用Node.js提供的fs.watch和fs.watchFile。
为了跨平台,这两个 API 始终侦听与路径相关的所有事件,因此答案是您不能将 chokidar 用于您的目的。
如果您希望使用更少的 memory,请手动轮询或使用可以直接访问 inotify 的本机 Linux 模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.