我目前在我的服务器上使用 socket.io v1.4.2 和 node.js v0.10.29。我尝试跟踪我的应用程序中的内存泄漏,我不确定,但我认为 socket.io 是我问题的一部分。
所以这里是服务器的代码(演示示例):
var server = require ('http').createServer ();
var io = require ('socket.io')(server);
io.on ("connection", function (socket) {
socket.on ('disconnect', function (data) { /* Do nothing */ });
});
Run Code Online (Sandbox Code Playgroud)
第 1 步:内存:58Mb
第 2 步:我创建了很多客户端(~10000),内存:300 Mb
第 3 步:我关闭所有客户端并等待 GC 完成他的工作
第 4 步:我查看我的内存:100 Mb :'(
第 5 步:与第 2 步和第 3 步相同
第 6 步:内存 160Mb...
依此类推,内存不断增长。
我认为 GC 是懒惰的,所以我使用以下代码重试:
setInterval (function () {
global.gc ();
}, 30000);
Run Code Online (Sandbox Code Playgroud)
我用以下命令启动我的 app.js:
node --expose-gc …Run Code Online (Sandbox Code Playgroud)