这是一个简单的' server.js'似乎泄漏内存的脚本....
var maxMem = 0;
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 8080});
wss.on('connection', function(ws) {
ws.on('close', function() {
global.gc();
var mu = process.memoryUsage();
console.log("mem: " + mu.heapUsed);
if (mu.heapUsed > maxMem) {
maxMem = mu.heapUsed;
console.log("*** new max: " + maxMem);
}
});
});
这是一个' client.js'只打开/关闭WebSockets的脚本,延迟时间很短......
var WebSocket = require('ws');
function doCycle() {
var ws = new WebSocket('ws://localhost:8080');
ws.on('open', function() {
setTimeout(function () {
ws.close();
doCycle();
}, 100);
});
}
doCycle();
我已经阅读了很多关于WebSockets中的内存泄漏的内容,尽管许多观点认为它在节点本身中确实是本机内存分配问题...
我已尝试使用节点0.10.29和0.11.13 - 相同的结果,这是我的堆(慢慢地)随着时间的推移而增长...
我只想确认这实际上是一个已知问题;或者我在这里使用WebSockets是有缺陷的......
提前致谢。