如何用MAT分析Android程序的内存泄露

如何用MAT分析Android程序的内存泄露,第1张

利用MAT分析Android程序的内存泄露步骤:

1、在Eclipse中新建一个Android工程,名字叫做:memoryleak。功能很简单,只有一个MainActivity和一个ImageUtil。我们在MainActivity中使用ImageUtil来加载图片。注意我们的ImageUtil是单例类。在创建的时候需要传入context。

2、应唯伍绝用运行后,转屏。转屏以后,MainActivity会重建,导致ImageUtil重新加载图片。很不幸的是,因为ImageUtil并没有重建,还持有之前的Context,也就是之前的那个MainActivity实例。多次转屏以后,我们在Eclipse的DDMS里面,导出内存映像文件。导出的指姿文件叫做:com.example.memoryleak.hprof。

3、DDMS导出的内存映像文件并不能被MAT直接使用。需要转换一下。在命令行输入:hprof-conv com.example.memoryleak.hprof memoryleak.hprof。

4、用MAT打开memoryleak.hprof。

5、点击“Histogram”

6、在Class Name后面的输入框输入应用的名字:com.example.memoryleak。

7、可以看到有4个MainActivity实例,如果没有泄露的情况下只应该有一个实例,说明存在内存泄露。在MainActivity->"Merge Shortest Paths To GC Roots"->"exclude all

phantom/weak/soft etc.refrences"。

8、在打开的页面中,点击橘老可以看到详细的引用信息。

9、界面就可以看出来是ImageUtil引用了一个MainActivity的实例。这样就找到了泄露的根源,就可以进行处理了。

1.2.1 首先我们得将需要打开的mat文件发到一个文件夹目录中(假设文件夹目录名为‘data’),作为我们将要使用的工作目录,

1.2.2 然后打开matlab软件颂卜,如下 *** 作,点击这个按钮(“浏览文件夹”),添加存有mat文件的data文件夹,导入文件夹;

1.2.3 之后通过matlab左停靠的【当前文件夹】视图,就可以在预览界面查看mat文件的具体数据和内容;又或者是在【命令行窗口】编码load命令,直接导入数据集

有时候我们在使用matlab进行运算的时候,想保存和读取mat文件数据,怎么 *** 作呢,下面来分享一下方法

开启分步阅读模式

工具材料:

matlab

保存和轮裂读取mat文件数据方法

*** 作方法

01

第一步打开matlab,在命令行窗口中输入a=[1 2 3 4 5 6],按回车键之后,输入save a,将a变量保存在新生成的a.mat文件,如下图所示:

02

第二步按回车键之后,在当前文件夹中,可以看到新生成的a.mat文件,需要注意的是在保存数据到mat文件中的时候,可以设置mat文件名,保存的变量,保存的路径,如下图所示:

03

第三步使用“load a”,读取a.mat文件数据,读取之后,就可以直接使用mat文件里面的a变量,如下图所示:

04

第四步如果我野桐穗们想保存多个变量到mat文件中,可以通过save('data.mat','a','b')的方式,data.mat是生成的mat文件名,a和b是存入的变量,

05

第五步使用load('data.mat')读取mat文件,读取之后,可以直接使用a和b变量

搜索政务服务平台

1打开手机百度,从搜索栏里输入国家政掘山务服务平台,进入新的页面。

2

进入小程序

进入页面后下滑,点击国家政务服务平台小程序进入。

3

查询核酸结果

切换页面后,点击“核酸和抗体检测查皮散尺询”,待页面跳转后轻点“查自己”即可燃高。

微信查询


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12237627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存