debugging节点js垃圾收集/内存问题与铬

我试图find一些内存泄漏的根本问题,我有一个节点的应用程序(V 0.8.6)。

为了帮助解决这个问题,我使用https://github.com/c4milo/node-webkit-agent 。 由于应用程序很大,我在一个testing平台中隔离了这个问题,以限制大型应用程序中的噪声量。

我们运行testing,然后将Chrome代理程序附加到该进程。 该物体似乎应该被清理,因为没有任何保持path缠绕在任何根物体上。 我的理解是如何保留path有缺陷,有什么我失踪? 我已经上传了一个debugging会话的下面的屏幕截图,显示了我认为应该GC'd的对象以及保留path,这些path并不会返回到任何GC根对象。

http://imgur.com/xV9xR

解决这个问题的另一种方法是尝试dtrace。 我强烈build议把你的项目放在像smartOS这样基于光照的发行版中:

这里是一篇文章,讨论如何使用dtrace在节点应用程序中查找内存泄漏: http : //dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/