这个教程里的代码有内存泄露问题么?
http://www.nodebeginner.org/index-zh-cn.html
在我的电脑上要加上一行:
var form = new formidable.IncomingForm();
form.uploadDir = "./tmp/";
console.log( "about to parse" );
就是中间那行,我用的是windows。我测试的是那个教程中最终的版本。
这是我写的测试代码:
var http = require( "http" );
var options = {
hostname: 'localhost',
port: 8888,
path: '/start',
method: 'POST'
};
function onEvent(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}
for( var i = 0; i < 100000; i++ ) {
var req = http.request(options, onEvent );
req.end();
}
这个代码可能有问题,我刚接触Node.js。是我直接改的Node.js官网上的例子。
测试的时候我还同时运行了四个这个测试程序。用我写的那个代码测试那个服务器的时候服务器使用的内存会一直在增加,偶尔会降一点,但是整体来说还是一直在增加的。最开始的时候是在20MB左右,隔一段时间内存就会降到17左右,之后就是在30左右,然后隔一段时间降一点。最后服务器占用的内存达到了50M左右。可能有点类似f(x)=x+2sin(x)的图像。我知道有专门测试这个东西的软件,但是我不会用。