Node.js内存分析

4
需要对节点进程进行性能分析。在生产环境中,运行一些天后会出现一些内存泄漏问题。
我尝试过使用node-inspector + v8,但它不起作用,在新版本的node-inspector中没有Profile选项卡,在旧版本中,当我开始分析时,会出现错误并停止调试。
我还尝试过nodetime.com,但它不能显示我需要的内容,而且它占用了太多内存,不适合生产环境。
我还尝试过dtrace (http://blog.nodejs.org/2012/04/25/profiling-node-js/),但它没有给我必要的信息。

那么我需要哪些信息来进行内存分析:


获取实例状态、实例数量、内存大小、实例类型。

您知道如何获取这些信息吗?


Nodetime使用V8的堆分析器来进行堆快照。在拍摄快照时,它可能会使内存使用量翻倍。在生产中使用时应该小心。不过,使用metric()方法向nodetime发送自定义指标并观察历史趋势可能会有所帮助。下一个版本将引入更多与内存相关的自动指标。 - logix
2个回答

5

您可以尝试使用look模块。它基于nodetime,但可以在本地工作。


谢谢!但是nodetime对我来说没有用,它没有显示我需要的必要信息。 - PlayerX

5
我发现node-memwatch很有用。
缺点是你需要将它嵌入到应用程序中,并编写一些代码,但它可以帮助你在不同的位置检查堆,以查看在执行某些操作后堆的变化量。

有一个大问题。它只显示堆,但我需要看到同样的信息用于 RSS... - PlayerX
2
我应该使用哪种方法来对堆进行分析并查看,而不需要修改源代码? - hellboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接