首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的socket.io内存泄漏

可能的socket.io内存泄漏
EN

Stack Overflow用户
提问于 2014-11-20 00:11:40
回答 1查看 984关注 0票数 2

使用带有redis存储的socket.io 0.9.17,随着时间的推移,内存使用量从启动时的~150 to增加到超过1.0gb。

我使用节点堆转储拍摄了2个堆快照。一个接着一个应用程序启动,另一个在一天后开始。比较结果,看起来最大的违法者是字符串对象。

下面是比较的截图。

当我展开字符串对象时,我看到的只是一些跟踪和一个uncaughtException。

该应用程序不会崩溃,在dev环境中运行相同的代码时也没有例外。这些字符串是通过redis存储传递给socket.io并分发给节点的事件。这方面的相关代码如下

代码语言:javascript
复制
var result = {
        posts: [postData],
        privileges: {
            'topics:reply': true
        },
        'reputation:disabled': parseInt(meta.config['reputation:disabled'], 10) === 1,
        'downvote:disabled': parseInt(meta.config['downvote:disabled'], 10) === 1,
    };

for(var i=0; i<uids.length; ++i) {
    if (parseInt(uids[i], 10) !== socket.uid) {
        websockets.in('uid_' + uids[i]).emit('event:new_post', result);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-22 05:14:33

升级到socket.io 1.x消除了内存泄漏。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27029504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档