检测代码中的node.js/javascript内存泄漏
Detect node.js/javascript memory leak in code
我有一些正在工作的代码,但是它有内存泄漏。
在node.js中跟踪内存泄漏有哪些好的策略?
在寻找此类泄漏时,我应该遵循哪些步骤?
如何跟踪代码中的泄漏?
谢谢
您可以通过分析应用程序的内存使用情况来弄清楚这一点。
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
仅供参考,函数将显示在(closure)
部分下的堆转储中。
你要确保你命名了你的函数(即使它们不需要一个名字),这样它们在堆转储中就会显示为有用的东西。
例如,像
function() {
}
将在堆转储中显示为function()
。位置:
function taggedFunction() {
}
将在堆转储中显示为function taggedFunction()
。如果您创建了100个taggedFunctions,那么您将在堆转储中看到taggeFunction 100次。基本上,命名函数可以让您确定是否继续创建和泄漏它们。
相关文章:
- 简单对象的Javascript内存泄漏
- Javascript内存分配
- 跟踪 JavaScript 内存泄漏的工具
- 页面刷新后javascript内存泄漏有问题吗?为什么?
- Javascript内存游戏-图像交换
- javascript内存问题
- 在 KnockoutJS 中更改模型数据时出现 Javascript 内存泄漏
- 有没有办法在测试中找到JavaScript内存泄漏
- for 循环中的 JavaScript 内存使用情况
- Javascript 内存泄漏时使用画布和 blob
- 在 express/node.js API 中进行高效的服务器端 JavaScript 内存管理
- Javascript内存管理:删除和拼接
- Javascript内存管理(requestAnimationFrame回调)
- JavaScript内存泄漏
- 捕获单页应用程序的JavaScript内存泄漏
- JavaScript内存化只能用于缓存返回的结果吗
- 使用THRE.JS对象的全局数组的Javascript内存管理
- JavaScript 内存泄漏解释
- 在大型集合和回调上使用map()的Javascript内存消耗
- Javascript:内存控制-关注它's特别使用