最近我们发现我们的 node.js 应用程序很可能有一些内存泄漏(显示的内存消耗htop
越来越多)。我们已经设法将少量代码隔离到单独的脚本中,这仍然会导致内存泄漏,现在正试图追捕它。但是,我们在分析和理解由htop
工具和这个 v8 分析器收集的测试结果时遇到了一些麻烦:http: //github.com/c4milo/node-webkit-agent
脚本启动后 htop 显示以下内存消耗:
http://imageshack.us/a/img844/3151/onqk.png
然后应用程序运行 5 分钟,我每 30 秒拍摄一次堆快照。5分钟后结果如下:
堆快照大小:
http://imageshack.us/a/img843/1046/3f7x.png
htop
5分钟后的结果:
http://imageshack.us/a/img33/5339/2nb.png
因此,如果我没看错,那么 V8 分析器显示没有严重的内存泄漏,但htop
显示内存消耗从 12MB 增加到 56MB!谁能说出这种差异来自哪里?为什么即使在测试开始时htop
,分析器也显示 12MB 和 4MB?