5
var server = require('socket.io').listen(1781);
server.set('log level', 1);

setInterval(function() {
    console.log(process.memoryUsage());
}, 60000);

我的 Socket.io 0.9.16 和 Node 0.10.12 / 0.10.13 应用程序中存在内存泄漏。连接一些客户端后,RSS 内存会增加,但在我断开它们后,内存不会下降。我将我的应用程序剥离到上层代码以排除我的任何错误。连接 1000 个客户端后,该过程需要 65MB(最初需要 ~15MB),在我断开所有客户端后,内存仍然很高。有什么帮助吗?

我阅读的所有文章/答案都是关于 node 或 socket.io 的早期版本。我迫切希望找到解决方案。

4

2 回答 2

0

我在 socket.io 上遇到过类似的问题。似乎一旦客户端连接,它就永远不会从 socket.io 中删除。

可以调试SocketIoServer.sockets.sockets的值。它是一个包含所有连接(和断开连接的套接字)的数组。也许这就是您的内存泄漏所在。

另外,我刚刚看到 socket.io 发布了 1.0 版。您可以尝试一下,看看它是否解决了该问题。

于 2014-06-01T00:30:45.990 回答
0

我正在使用 nodetime 来跟踪内存使用情况,它似乎有内存泄漏。抛弃nodetime后,内存消耗稳定。

于 2014-06-01T07:22:42.477 回答