Memory 监视目录更改-内存可能过高

Memory 监视目录更改-内存可能过高,memory,node.js,filesystems,directory,Memory,Node.js,Filesystems,Directory,我目前正在nodeJS中使用一个脚本来监视一个目录(及其子目录),并在文件被放置到那里后执行一些功能。实际上,这将是一个FTP,用户上传文件,然后进行处理,然后删除 显然,我已经看到脚本的CPU使用率很高,因为它遍历目录,等待文件可见。但让我担心的是,脚本运行的时间越长,内存使用率就越高(只是一直呈指数级增长)。是否有一些轻量级的方法来监视目录的更改 谢谢 编辑:我目前正在使用的是非常好的,但是仍然有越来越多的内存问题。听起来你想在FAM或inotify上加一个包装器。也许类似的方法对您有用。您

我目前正在nodeJS中使用一个脚本来监视一个目录(及其子目录),并在文件被放置到那里后执行一些功能。实际上,这将是一个FTP,用户上传文件,然后进行处理,然后删除

显然,我已经看到脚本的CPU使用率很高,因为它遍历目录,等待文件可见。但让我担心的是,脚本运行的时间越长,内存使用率就越高(只是一直呈指数级增长)。是否有一些轻量级的方法来监视目录的更改

谢谢


编辑:我目前正在使用的是非常好的,但是仍然有越来越多的内存问题。

听起来你想在FAM或inotify上加一个包装器。也许类似的方法对您有用。

您识别的是第三方代码中的内存泄漏。尝试使用
supervisor
它不太可能出现内存泄漏。(这是艾萨克斯做的!!)听起来是个不错的选择!添加文件时,如何监视目录(和子目录)?节点管理器似乎只监视一个文件的更改(例如server.js),它还监视所有
.js
文件的任何子目录。如果您尝试
supervisor--help
,它应该有一个
-js
选项来进行更详细的控制。感谢@Raynos,我已经开始配置它,并且正在使用下面的命令-supervisor-w Sites/data-e txt Sites/server.js,根据文档,它可以监视txt文件的Sites/data文件夹。我的问题是,如何访问这些更改?我希望能够在my server.js中传递它拾取的已更改为处理的文件…默认情况下,supervisor会在文件更改时重新启动服务器。这是热重新加载。没有编程API。谢谢@rjp,我一直在研究类似的东西。我对任何解决方案的主要问题是监控过程将占用的内存级别,因为该系统每次需要在线8小时。inotify是一个好方法吗?根据我的研究,它是操作系统的一部分,因此具有很高的内存效率…FreeBSD/OS X用户需要使用kqueue解决方案,因为这些平台上不存在inotify/epoll。当目录中的文件被修改时,您可以使用node inotify plusplus打印文件名吗?还有,是否有可用的示例程序(使用node inotify)可用?我想我们需要一些具体的例子来解决这个问题(node inotify的文档非常混乱,所以这里有些例子会很有帮助。)@rjp你能告诉我它与官方的node api有什么不同吗?