2013-10-09 57 views
2

最近我們發現我們的node.js應用程序最有可能存在內存泄漏(內存消耗顯示在htop正在增長和增長)。我們已經設法將少量代碼分離成單獨的腳本,這仍然導致內存泄漏,現在試圖追捕它。然而,我們遇到了一些麻煩與分析和了解我們的測試結果收集到htop工具,這V8探查:腳本開始HTOP是顯示http://github.com/c4milo/node-webkit-agent右後跟蹤node.js中的內存泄漏 - v8 profiler vs 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 profiler顯示沒有嚴重的內存泄漏,但htop顯示內存消耗從12MB增長到56MB!任何人都可以告訴這種差異來自哪裏?爲什麼即使在測試開始時htop顯示profiler顯示12MB vs 4MB?

回答

2

htop作者在這裏。你正在閱讀htop數字。我不知道V8分析器,但在開始時「12MB vs 4MB」的問題上,最有可能的情況是V8只記錄您的JS數據,而htop記錄整個過程的常駐內存使用情況,包括V8本身使用的C庫等。