mat在eclipse mat中怎么使用

下次自动登录
现在的位置:
& 综合 & 正文
Eclipse MAT 使用说明
Eclipse MAT 使用说明
仔细看了看,网上关于mat使用的资料比较少。尤其是中文的,基本上没有系统完整性的文档。本文主要列出提纲,给出有用的链接,开启思路。也会不断的补充case。
之前不知道什么奇怪的原因,安装不了,重新下载了最新的Kepler eclipse,在线正常安装。
二,基本概念
2,shallow
3,retained
4,heap dumps
1,histroycharm
2,dominator tree
case 1:bitmap OutOfMemory
四,相关链接
Note:此链接信息量极大,可以认真看。
五,为简单起见,制造一个内存泄露的case,将分析的步骤列出来,在文末中。
5-1 制造内存泄露
运行示例项目,不断的点击各个项目,点击不同的图片,操作30s到1min左右。
5-2 定位指定app
打开ddms,选中device,选中对应的包com.example.android.hcgallery,选择这个图标。此步骤即绑定对应的app,监视其内存使用情况。
5-3,分析准备
点击Update Heap图标右边第二位的gc图标,手动清理内存。这样,内存泄露部分的内存不会被清理掉,待会将会分析这部分。可以多执行几次gc。
5-4,创建FPROF文件
点击Update Heap右边第一位的Dump HPROF file,这个过程中,将会生成HPROF文件,这个过程可能会比较耗时一些,耐心等待。等待弹出对话框,点击finish即可。
5-5,FPROF文件的图形化
接下来的工作其实是mat工具会HPROF文件的图形化及相应的处理。
5-5-1对应的饼图,是内存泄露总的概述。
5-5-2 接下来是按照百分比来分析。
饼图的图形化,并不能准确的定位内存泄露的真正原因,只是给出一个宏观的概念,问题的类型及权重。比如bitmap类型的占20%,比如linearlayout类型的占10%
5-6 FPROF文件分析及定位错误
5-6-1 创建Histogram
5-6-2 点击Shallow Heap列,使其按照大小从上到下排列
5-6-3 生成对象关系
此类型(byte[])泄露的对象调用关系。内存泄露大部分情况下,bitmap没有释放,而bitmap的存储是以byte[]的形式存在的。
5-6-4 点击shallowHeap,使object list按照大小从上到下排列
5-6-5 点击开相应的行,定位到错误处。
在进行内存分析的过程中,有时候,需要不断的向下点开,因为问题的最终起源可能比较深。
定位到错误代码行:
void updateContentAndRecycleBitmap(int category, int position)
if (mCurrentActionMode
mCurrentActionMode.finish();
bitmapId = "" +
category + "." +
= sBitmapCache.get(bitmapId);
if (mBitmap
== <code class="java keyword" style="padding:0px! margin:0px! border:0px! bottom:auto! float:none! left:auto! line-height:1.1em! outline:0px! overflow:visible! position:static! right:auto! top:auto! vertical-align:baseline! width:auto! font-family:Consolas,'Bitstream Vera Sans Mono','Courier New',Courier,mo
&&&&推荐文章:
【上篇】【下篇】Android内存分析MAT(eclipse memory analyzer)使用_中华文本库
第1页/共8页
内存分析工具MAT(MemoryAnalyzerTool)
如果使用DDMS确实发现了我们的程序中存在内存泄漏,那又如何定位到具体出现问题的代码片段,最终找到问题所在呢?如果从头到尾的分析代码逻辑,那肯定会把人逼疯,特别是在维护别人写的代码的时候。这里介绍一个极好的内存分析工具MemoryAnalyzerTool(MAT)。 MAT是一个Eclipse插件,同时也有单独的RCP客户端。官方下载地址、MAT介绍和详细的使用教程请参见:www.eclipse.org/mat,在此不进行说明了。另外在MAT安装后的帮助文档里也有完备的使用教程。在此仅举例说明其使用方法。我自己使用的是MAT的eclipse插件,使用插件要比RCP稍微方便一些。
使用MAT进行内存分析需要几个步骤,包括:生成.hprof文件、打开MAT并导入.hprof文件、使用MAT的视图工具分析内存。以下详细介绍。
1.生成.hprof文件
a) 打开eclipse并切换到DDMS透视图,同时确认Devices、Heap和logcat视图已经打开了; b) 将手机设备链接到电脑,并确保使用“USB调试”模式链接,而不是“Mass Storage“模式;
c) 链接成功后在Devices视图中就会看到设备的序列号,和设备中正在运行的部分进程; d) 点击选中想要分析的应用的进程,在Devices视图上方的一行图标按钮中,同时选中“Update Heap”和“Dump HPROF file”两个按钮;
e) 这是DDMS工具将会自动生成当前选中进程的.hprof文件,并将其进行转换后存放在sdcard当中,如果你已经安装了MAT插件,那么此时MAT将会自动被启用,并开始对.hprof文件进行分析;如果没有安装MAT插件会提示文件另存为,将文件存储在自己想存储的地方即可。
2.使用MAT导入.hprof文件
a) 如果是eclipse自动生成的.hprof文件,可以使用MAT插件直接打开(可能是比较新的ADT才支持);
b) 如果eclipse自动生成的.hprof文件不能被MAT直接打开,或者是使用
android.os.Debug.dumpHprofData()方法手动生成的.hprof文件,则需要将.hprof文件进行转换,转换的方法:将.hprof文件拷贝到PC上的/ANDROID_SDK/tools目录下,并输入命令
第1页/共8页
寻找更多 ""mat在eclipse中怎么使用_百度知道
mat在eclipse中怎么使用
勾选全部,点击Next: 1,等待下面的进度条加载完毕后,点击Finish就开始安装MAT了。 4、打开Eclipse - help -
Eclipse Marketplace步骤如下。 3。 2、点击install、同意协议后、安装完成后重启Eclipse
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 eclipse mat如何使用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信