Ben*_*itD 8 javascript memory-leaks node.js
我有一些工作正常,但它有内存泄漏.
有哪些好的策略可以跟踪node.js中的内存泄漏?
在寻找此类泄漏时,我应该遵循哪些步骤?
如何跟踪代码中的泄漏?
谢谢
Mat*_*ogt 17
您可以通过分析应用程序的内存使用情况来解决这个问题.
Javascript对象在堆上分配,因此您需要一个可以转储堆的工具.获取堆转储后,您可以检查它并查看给定对象(或函数)的实例数.
例如,对于您的代码,您知道只要用户连接就会创建套接字.在连接三个用户时转储堆应该显示~3个套接字.在这些用户断开连接后转储堆应显示~0个套接字.
实际上,您可以将Chrome堆转储分析器与Node.js堆转储一起使用.
Chrome堆转储分析器上的文档:https://developers.google.com/chrome-developer-tools/docs/heap-profiling
允许您获取Node.js堆转储并在chrome中检查它们的项目:https://github.com/bnoordhuis/node-heapdump
只是fyi,函数将显示在该(closure)部分下的堆转储中.
您需要确保为函数命名(即使它们不需要名称),因此它们在堆转储中显示为有用的东西.
例如,像
function() {
}
将只显示function()在堆转储中.在哪里:
function taggedFunction() {
}
将显示function taggedFunction()在堆转储中.如果您创建了100个taggedFunctions,那么您将在堆转储中看到taggeFunction 100次.基本上,命名您的函数可以让您弄清楚是否继续创建和泄漏它们.
| 归档时间: |
|
| 查看次数: |
3792 次 |
| 最近记录: |