【发布时间】:2015-04-03 22:53:04
【问题描述】:
我很困惑,因为我的应用程序正在泄漏内存。它是一个每分钟处理数十万个数据包的 tcp 服务器。我检查了代码,改进了它并分析了内存。
一切似乎都还好,在本地进行低流量测试实际上表明 gc 正确释放了内存。但是当在实时流量大的服务器上时,它不会。
所以我尝试使用expose-gc 选项并在每次断开连接时添加强制gc,现在我发现内存不再泄漏或者甚至每次都泄漏?
所以,我的结论是 gc 没有激活。我的服务器有 3GB 内存,而应用程序在短短几个小时内就吃掉了其中的 2.8GB。
现在使用强制 gc,应用程序不再泄漏。它维持着大约 200MB 的内存。
那么,我的问题是,为什么 gc 没有被触发?
【问题讨论】:
-
您找到解决方案了吗?我也有同样的问题T_T
-
@MarsZhu 抱歉,我放弃了 Node,转而使用 Go,这是有史以来最好的决定。
标签: javascript node.js memory-leaks garbage-collection v8