最近我开始了我的第一个项目node.js
,我可以肯定地说我很喜欢它。所有模块都非常强大;但是,似乎我有一个“轻微”的内存泄漏,导致我的服务器在大约一个小时后崩溃(达到 99-100% 的 CPU)。我一直在尝试解决这个问题一段时间。
幸运的是,经过一番搜索,我找到了一个流行的工具,叫做memwatch
. 我当然安装了模块,并开始记录我的服务器进程的内存使用/存储。
最终,在查看日志后,我找到了可能的原因。
{
"what": "String",
"size_bytes": 9421368,
"size": "8.98 mb",
"+": 16635,
"-": 533
}
当然,在 30 秒内,这个小虫子就增加了 9mb(非常不寻常)。很高兴知道我的内存泄漏似乎是 type string
,但是我到底该去哪里呢?有什么方法可以得到更准确的结果吗?
我查看了我的代码,但我的代码中确实没有一个string
可能会像这样增长。有没有可能这个字符串实际上不是我的代码的一部分,而更多的是节点或 Socket.IO 模块的一部分?