Node.js NodeJS+;多部分上传时的快速内存泄漏

Node.js NodeJS+;多部分上传时的快速内存泄漏,node.js,memory,file-upload,express,memory-leaks,Node.js,Memory,File Upload,Express,Memory Leaks,我对Node+Express在一个非常简单的任务中的行为感到非常惊讶 我想做的只是通过一个多部分表单上传一个文件。 文件上载后,节点内存增加过多(恰好约60 mb,与上载的文件大小相同),并一直保留到重新启动节点进程。我猜垃圾收集器应该释放分配的内存,但显然不是。一些信息: 节点v:0.10.33 快递v:4.11.1 上传前节点RAM=19.9 MB 上传后节点RAM=79.9 MB 上传文件大小:60 MB 为了解释这一点,我使用Node和Express从头开始创建了一个项目 expre

我对Node+Express在一个非常简单的任务中的行为感到非常惊讶

我想做的只是通过一个多部分表单上传一个文件。 文件上载后,节点内存增加过多(恰好约60 mb,与上载的文件大小相同),并一直保留到重新启动节点进程。我猜垃圾收集器应该释放分配的内存,但显然不是。一些信息:

  • 节点v:0.10.33
  • 快递v:4.11.1
  • 上传前节点RAM=19.9 MB
  • 上传后节点RAM=79.9 MB
  • 上传文件大小:60 MB
为了解释这一点,我使用Node和Express从头开始创建了一个项目

express -ejs .
我将这个示例项目上传到GitHub(包括node_模块)只是为了澄清,并让您有一个快照:

如您所见,我创建了两个路由,一个用于表单,另一个用于打印req内容

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

router.post('/upload', function(req, res, next) {
    console.log("/UPLOAD");
    console.log(req);
    res.end();

});

module.exports = router;
所以问题是,在10或12次大的上传之后,节点进程崩溃,因为RAM仍然在增加,内存中断

我错过了什么?请,一点帮助将是受欢迎的!!!
非常感谢你

我猜图像的
console.log()
出现了问题。在网上我发现其他人提到了


尝试执行另一个操作,例如将其保存到文件中,看看这是否会导致您现在遇到的主要内存泄漏。

您确定要提交多部分请求吗?在github上的项目中,您没有使用任何多部分请求处理中间件…Thants right@mscdex,在本例中,甚至没有必要处理多部分请求。简单的事实是接收会增加内存。你触发上传的速度有多快?我刚刚下载了您的示例,无法用100mb的文件重现该问题。当然,我每3-4秒手动上传一次。谢谢你的回复。我只需要上传一次就可以重现这个问题。您使用的是哪个节点版本?谢谢