pomelo内存泄露排查方法

工具:

node-inspector

pomelo-cli

chrome

步骤

  1. 通过pomelo-cli中的dump memory,导出当前服务器的内存堆栈文件:dump1.heapsnapshot。
  2. 服务器运行指定模块一段时间后,导出堆栈文件:dump2.heapsnapshot。
  3. 用chrome 读取堆栈文件:打开开发者工具->Profiles->Load->选择堆栈文件。先load 前面的dump1,再Load dump2。
  4. 在Profiles的左侧会有份文件列表,重点看两份的差异:选择dump2 -> 点击顶部栏搜索框左侧->选择Object Allocated between dump1 and dump2
  5. 查看每组内存占用。
  6. 分析内存占用最多的对象。js有大量匿名方法,目前没发现搜索内容的方法,只能搜方法名。所以只能自己一个个打开去看,才知道那是啥。。。囧(这个时候才发现方法命名真的很重要)
  7. 基本上先按大小排序,然后分析几个关键的大头,问题一般都在这。
时间: 2024-10-26 08:52:43

pomelo内存泄露排查方法的相关文章

C#防止内存泄露的方法

一般程序员()都会这样认为:用C#这样的语言编程的一个好处就是无需再考虑内存的分配和释放.你只需创建对象,然后通过一种叫做垃圾收集的机制来处理这 些对象,也就是说:当它们不再被应用程序需要的时候来自动的清除这些对象.这个过程意味着C#解决了其它语言中极难处理的问题──可怕的内存泄露.真的是 这样吗?      其实不然,让我们先了解一下垃圾收集的工作原理.垃圾收集器的工作就是寻找那些不再被应用程序需要的对象,当它们不会再被访问或引用的时候清除它们.(一定要注意是在不会再被访问或引用的时候才清除它

C++内存泄露检查方法

重载全局new 可以写多个版本的new,却只有一个delete: 重载全局new会发生一些不匹配的串扰,尤其是有第三方库的情况下: 我的解决办法 重载单个class的new: 原始类型不能重载,那就使用类似于malloc的办法分配: 我的cfan开源库实现了这个方法 操作系统hook机制 http://my.oschina.net/chunquedong/blog/271248 这些都不跨平台,使用也不方便: valgrind等工具 不跨平台: 除非能实现持续集成,否则很难及时反馈: 有时候引起

Flex内存泄露解决方法和内存释放优化原则

本文向大家简单介绍一下Flex内存泄露问题,主要包括Flex内存释放优化原则和Flex内存泄露解决方法两大部分内容,希望你会感兴趣. 作者:vipoyb来源:csdn.net|2010-07-29 14:08   你对Flex内存泄露的概念是否了解,这里和大家分享一下Flex内存释放优化原则和Flex内存泄露解决方法,希望本文的介绍能让你有所收获. Flex内存释放优化原则 1.被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉: 2.父对象内部的子对象被外部其他对象引用了,

记一次内存泄露排查

最后在实现一个无限循环的ViewPager,展示图片,功能实现了,但是运行一段时间之后会挂掉. 多亏了AndroidStudio的Memory Monitor,发现了内存一直在增长. 怎么触发gc内存都不会减少,确定了内存泄露了,但是不知哪里出问题了. 一时想到的排查内存泄露的工具,就是MAT了,但是没找到AndroidStudio的MAT插件. 只能先把java heap dump出来先,如下图所示 dump出来之后,hprof文件会保存在项目下captures目录,之前一直不知到,找了很久.

WebView 避免内存泄露的方法

最近遇到一个Webview内存泄露的问题,上网查了一些结果,在此记录一下: webview在android系统中属于一个比较特殊的view,在调用 webview.destroy()的时候,必须确保webview已经从view tree中被删除,否则这个函数不会执行的.如本app中的用法,在xml中静态定义的webview,只有在整个view退出后调用 webview.destroy()才会被正确执行,但整个view退出后又找不到webview了,这个是很矛盾的. 所以android给出的解决方

Tomcat内存泄露解决方法

环境: 今天早上,实施人员找我说,部署在tomcat上的一个项目总是间隔一段时间就自动关闭了,我询问一些可能发生的情况后,我就找了tomcat下的日志文件catalina.2015-04-13.log,localhost.2015-04-13.log这两文件,经过一番查找后,看到了下面一段 异常详细信息介绍: http://confluence.atlassian.com/pages/viewpage.action?pageId=218275753 原因大概是说tomcat 6.025之后引入了

UIWebView内存泄露问题解决方法

1.在收到内存警告的时候,清除缓存内容. - (void)applicationDidReceiveMemoryWarning:(UIApplication*)application {     [[NSURLCache sharedURLCache] removeAllCachedResponses]; } 2.释放UIWebView的时候 _webView.delegate = nil; [_webView loadHTMLString:@"" baseURL:nil]; [_we

使用mfc CHtmlView内存泄露解决方法

第一步,谷歌有文章说CHtmlView部分api使用BSTR没释放: 解决方法是重写一下接口: CString GetFullName() const; CString GetFullName() const; CString GetType() const; CString GetLocationName() const; CString GetLocationURL() const; void Navigate(LPCTSTR URL, DWORD dwFlags = 0, LPCTSTR

VS 查看是否有内存泄露的方法

加入下列宏定义: [cpp] view plain copy #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_CLIENTBLOCK #endif #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #ifdef _DEBUG #define new D