相关疑难解决方法(0)

NodeJS应用程序带内存泄漏,在哪里?

我有一个NodeJs应用程序,它通过Redis服务器上的subscribe来监听消息.它收集消息5秒钟,然后将它们推送到连接的客户端,代码如下所示:

io.sockets.on('connection', function (socket) {
    nClients++;
    console.log("Number of clients connected " + nClients);
    socket.on('disconnect', function () {
        nClients--;
        console.log("Number of clients remaining " + nClients);
    });
});
Run Code Online (Sandbox Code Playgroud)

接收消息以发送给客户端

cli_sub.on("message",function(channel,message) {
        oo = JSON.parse(message);
        ablv_last_message[oo[0]["base"]+"_"+oo[0]["alt"]] = message;
});

setInterval(function() {
    Object.keys(ablv_last_message).forEach( function(key) {
        io.sockets.emit('ablv', ablv_last_message[key]);
    });
    ablv_last_message = [];
}, 5000);
Run Code Online (Sandbox Code Playgroud)

解决方案找到了(至少我是这么认为):节点没有崩溃,因为它达到了一些内部内存限制,它看起来好像因为我的VPS内存耗尽而崩溃,它也是一个2GB VPS运行一个或两个其他进程.在将其升级到4GB后,Node运行顺畅,是的,总是大约1.6到2.0 GB,但我相信它的GC在这里工作.

node.js

3
推荐指数
1
解决办法
2258
查看次数

标签 统计

node.js ×1