在简单的websocket示例中,Node.js内存泄漏

时间:2014-06-26 23:41:43

标签: node.js memory-leaks websocket

这是一个简单的' 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是有缺陷的......

提前致谢。

0 个答案:

没有答案