zin*_*nga 6 memory-leaks node.js
我有一个node.js应用程序,尽管heapUsed/heapTotal保持相对稳定,但RSS内存使用似乎仍在增长.
这是一周(从process.memoryUsage())获得的三次内存测量的图表:

您可能会注意到有一些循环模式 - 这与应用程序在每天的活动相对应.
实际上堆中似乎有一点点增长,尽管它远不及RSS增长.所以我一直在使用堆转储(使用node-heapdump),并使用Chrome的堆比较功能来查找泄漏.
一个这样的比较可能如下所示(按大小增量按降序排序):

实际显示的内容取决于拍摄快照的时间(例如,有时会分配更多的缓冲区对象等) - 这里我尝试采用最能说明问题的示例.
首先要注意的是左侧的尺寸(203MB对345MB)远远高于图中显示的堆尺寸.其次,大小增量显然与142MB的差异不匹配.事实上,按大小增量按升序排序,许多对象已被释放,这意味着堆应该更小!
有没有人有任何想法:
其他细节:
节点版本:0.10.28
OS:Ubuntu 12.04,64 位
更新:正在使用的模块列表:
谢谢阅读.
小智 2
您看到的 RSS 使用率和堆使用率之间的区别在于缓冲区。
“Buffer 类似于整数数组,但对应于 V8 堆外部的原始内存分配” https://nodejs.org/api/buffer.html#buffer_buffer
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |