我正在使用节点v0.12.7编写nodeJS应用程序。
我正在使用pm2 v0.14.7运行我的nodejs应用程序。
似乎我的应用程序中存在内存泄漏,因为当我在24小时后将其启动到大约1gb时,它从大约180MB反弹。
我正在尝试调查此问题。
到目前为止,我找到了以下工具:
MEMWATCH-下 堆转储 节点检查员
使用node-inspector我发现了一些cpu问题,我能够轻松修复它们。
使用memwatch-next和heapdump我正在尝试获取应用程序内存的完整映射,问题如下:
我的应用程序运行24小时后,pm2后显示内存增加到1gb以上,当我使用这些工具创建一个堆转储时,它会创建一个大约80MB的堆转储。
我的问题是......其余的在哪里?
如果应用程序内存大约为1GB,我如何查看整个应用程序的内存映射以查找内存泄漏?我错过了什么?
非常感谢有关该问题的任何信息。
答案 0 :(得分:5)
您是否在代码中使用了Buffer Object?
Buffer类似于整数数组,但对应于V8堆外的原始内存分配
此外,下面的代码将显示
process.memoryUsage();
//ouput { rss: 19730432, heapTotal: 9751808, heapUsed: 4768896 }
确认rss键的值是否等于pm2的显示值;