内存测试

一、查看内存大小

查看单个应用程序最大内存限制的方式:

1.内存数据文件地址: android手机内部 system/build.prop

adb pull  system/build.prop 本地路径

打开该文件,查看对应的内存信息

2.另一种查看方式,使用命令行

adb shell  getprop | grep heapgrowthlimit

得到对应的结果

[dalvik.vm.heapgrowthlimit]: [128m]

PS:当然adb shell  getprop 还有可以得到其他。build.prop文件中包含的数据应该都可以获取,还没有具体去使用。

二、查看内存的方式

adb shell dumpsys meminfo <package-name>

结果如下:

看到这个图,其实都不陌生了,但是具体该看什么呢?先简单分析下:

1.dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的。

2.native是被native堆使用的内存。应该指使用C\C++在堆上分配的内存。

所以我们查看的大小是 dalvik heap(单位为KB,注意换算)不能超过最大限制(heapgrowthlimit)

另外一些参数含义:

Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间

Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间

Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间

Native Heap Size 约等于Native Heap Alloc + Native Heap Free

mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。

Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。

Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。

Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。

Dalvik Heap Size 约等于Dalvik  HeapAlloc + Dalvik  Heap Free

我们关注主要就是 native和dalvik的heap size,通过自动化或手工测试,查看heap size 是否处于一直增长的状态,若一直增长,可能会出现oom的情况。

结果分析: 可以查看 https://developer.android.com/reference/android/os/Debug.MemoryInfo.html  具体字段意义

linux系统或者Android 系统内存大多是共享的,所以单独计算使用的内存是特别困难。 

1.pss:proportional set size  Pss数字是内核计算的衡量内存共享的度量标准,基本上每个页面的RAM都是通过使用该页面的其他进程的数量进行缩放。这样,您可以(理论上)将所有进程中的pss加起来,以查看它们正在使用的总RAM,并比较进程之间的pss,以了解它们的相对权重。

2.private Dirty:另一个有趣的指标是PrivateDirty,它基本上是不能被分页到磁盘的进程内的RAM量(它不受磁盘上相同的数据支持),并且不与任何其他进程共享。另一种看待这种情况的方法是当该过程消失时(可能很快将其纳入高速缓存和其他用途),RAM将可用于系统。

3.private Clean: 未找到合适的说明,猜测就属于未使用的私有的磁盘大小

4.Swapped Dirty:未找到合适的说明,猜测交换的磁盘控件的大小

三、Memory Monitor

前提:一定是debug 的包,release的包无法查看

可参考该文章进行内存泄漏操作查看

http://www.cnblogs.com/linguanh/p/5601232.html 

具体可查看https://developer.android.com/studio/profile/am-hprof.html?#hprof-snapshot

https://developer.android.com/studio/profile/am-allocation.html,英文水平不佳,准备开始翻译

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,799评论 25 707
  • 本文章转载于搜狗测试 当软件实现了新功能后,准备发布版本前,必须进行性能测试以确定没有性能问题,内存使用情况便是其...
    夜境阅读 1,528评论 0 2
  • 几个月之前看过一遍,结果过一阵子在查bitmap造成内存泄露时又感觉忘得差不多了,不晓得android os RA...
    mrz_233333阅读 413评论 0 0
  • 前言 微信公众号模板消息是公众号向用户定向发送消息的途径,只需要申请发送模板消息权限,拥有用户的OPENID即可实...
    江米条二号阅读 2,671评论 0 5
  • 儿子被他奶奶带得很小气,即使没用的,也舍不得扔。 儿子四岁时,我们去白云公园玩,儿子在路边捡到一个小手帕,起初很是...
    高天明月55阅读 313评论 0 0