首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在eclipse中使用MAT并解决内存泄漏问题

在eclipse中使用MAT并解决内存泄漏问题
EN

Stack Overflow用户
提问于 2012-05-17 18:11:54
回答 2查看 1.9K关注 0票数 1

我正在使用eclipse的MAT来分析我的Android项目中的内存使用情况。

我用过

代码语言:javascript
复制
try {  
            Debug.dumpHprofData("/mnt/sdcard/myapp.hprof");  
            Log.i("","Calle d dumpHprofData");  
         } catch (IOException e) {  
             // TODO Auto-generated catch block  
             e.printStackTrace();  
          }  

在我的onCreate()中..生成myapp.hprof文件。然后使用"hprof-conv myapp.hprof mat.hprof“将其转换为mat.hprof

我用eclipse打开了"mat.hprof“,它显示了巨大的漏洞。

我不知道如何分析和解决这些漏洞。

例如:

代码语言:javascript
复制
 7,321 instances of "java.lang.String", loaded by "<system class loader>" occupy 457,648 (23.06%) bytes.   

Keywords  
java.lang.String  

我无法使用MAT打开与之相关的源文件。

请帮帮忙。

谢谢

Sneha

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-18 17:22:49

一旦您转换了hprof文件...尝试从MAT工具打开文件...file -> Open heap Dump ->浏览并选择您的文件。

现在单击直方图视图,并在顶部输入活动的名称。您将能够看到浅堆和保留堆。

Object应为1,如果大于1,请检查实时refereces。

右键单击您的类名,选择Path to GC roots -> exclude弱引用。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2014-10-15 05:09:33

Google I/O 2011: Memory management for Android Apps吧。最常见的内存泄漏来源,使用MAT的实际例子-所有内容都在那里。

此外,Memory Analysis for Android Applications还介绍了如何使用MAT,并提供了其他有用材料的链接。

最后,Investigating Your RAM Usage介绍了如何(如果有)触发内存泄漏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10633696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档