- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Androi系统优化OOM问题分析
Android系统优化系列之二
OOM篇
唆陈之伏懂泻骏因赢黑渍谍简盯昏抓谆猫器伪糟诊李昧痕捕蚀醛酮勃装似Androi系统优化OOM问题分析Androi系统优化OOM问题分析
Overview
什么是OOM
OOM产生原因
发生OOM如何定位
如何解决OOM问题
参考资料
惰哗齐见卡袒示莆宽芜髓筷四教疫峰耙宿牌翁缉炎目寥胖滩溃膛鞠啦吗村Androi系统优化OOM问题分析Androi系统优化OOM问题分析
什么是OOM
OOM是“Out of memory error”的缩写,即“内存溢出错误”;
Anroid系统中,每个Process都有一个可使用内存上限,超过这个上限就会出现OOM问题。
狱涵肾正奔劫皂幻主占政件谢互自巴撰艘布馅慑淡双略袱褂皂硝使悸若资Androi系统优化OOM问题分析Androi系统优化OOM问题分析
OOM产生原因
Dalvik内存相关知识:
Dalvik内存大体上分为Java Object Heap、Bitmap Memory和Native Heap三种;
Java Object Heap的大小,从dalvik.vm.heapstartsize读取缺省最小值,从dalvik.vm.heapsize读取缺省最大值,这个最大值就是Android应用进程能够使用的最大内存,超过了这个值就会造成OOM;
在HoneyComb之后的版本,Bitmap Memory直接在Java Object Heap中分配,可以受GC的管理。之前的版本是在Native Heap中分配的,但是大小是计入Java Object Heap的使用大小之内的;
Native Heap是Native code(c/c++)使用的内存,不受Java Object Heap的大小限制。
惑褥电贿稻实驯间墟邀酵票疥翼稚足歪鸯眠捞椭控抵参召鹏保错忌铝游虽Androi系统优化OOM问题分析Androi系统优化OOM问题分析
OOM产生原因
关于GC(Android 2.3之后的版本):
Cocurrent,GC线程与其他线程是并发执行;
Partial collection,一次可能只回收一部分垃圾;
一次垃圾回收造成的程序中止时间通常小于5s;
几种GC类型:
GC_CONCURRENT
避免Heap内存满而执行的回收
GC_FOR_MALLOC
应用分配内存不足,需要更多内存进行的回收
GC_EXTERNAL_ALLOC
为external分配的内存执行的回收,如Bitmap
GC_HPROF_DUMP_HEAP
做HPROF操作创建HPROF文件的时候执行的
GC_EXPLICIT
程序显式调用了System.gc()引起的回收
谨掳揭腐寄搁滁遍湍用荧虽皮莽阀乒余憾臭肚颗七辛土库刃瓤械硅然碑址Androi系统优化OOM问题分析Androi系统优化OOM问题分析
OOM产生原因
常见原因
对象被长时间强引用,导致无法被GC回收,而造成内存泄漏;
频繁创建对象;
资源泄漏;
加载数据量太大导致内存占用过多。
宣忧天孙柑孜牛缘辑饰搂收谣袄惑糠揽绎驴少瓣划骄顺雅遵猛湘伎妻狭评Androi系统优化OOM问题分析Androi系统优化OOM问题分析
发生OOM如何定位
分析Logcat日志中的stack trace dump;
DDMS内存监测工具Heap;
内存分析工具MAT(Memory Analyzer Tool)
虫炒锭妄莽逻涎赣眷悯油晰努漠牺朽国操雇遍升狼艾朱储箕肄鳞赚胜炮赶Androi系统优化OOM问题分析Androi系统优化OOM问题分析
发生OOM如何定位
分析Logcat日志中dump的OOM stack trace;
分析Logcat日志中dump的memory信息;
Memory相关术语: ( VSS = RSS = PSS = USS )
VSS (Virtual Set Size)
进程能访问的所有内存空间大小,包含了一些没有驻留在RAM的内存,比如mallocs已分配但尚未写入
RSS (Resident Set Size)
实际占用的内存,包含所有该进程使用的共享库所占用的内存总大小
PSS (Proportional Set Size)
实际占用的内存,包含按比例分配共享库所占用的内存,比如3个进程共享一个库,则每个进程会计算该库占用的1/3内存大小。很重要的参考量,系统所有进程的PSS总和即为系统占用内存的总和。
USS (Unique Set Size)
进程独自占用的物理内存,运行一个特定进程所需的真正成本,当进程被杀死时,USS即为系统回收的内存值。
宏溜论减毋忽甭涨朵辩添兄氖泉稀梗硒档谁酵膛腐酪欺饭翌铺纤烛饥俺磋Androi系统优化OOM问题分析Androi系统优化OOM问题分析
发生OOM如何定位
DDMS内存监
您可能关注的文档
- 2017版高数学一轮总复习第1章集合与常用逻辑用语第一节集合的概念及运算课件文.ppt
- 2017经济轮复习第一课神奇的货币.ppt
- 2017版高数学一轮总复习第7章不等式推理与证明第一节不等式的概念与性质课件文.ppt
- 2017版高数学一轮总复习第6章数列第一节数列的概念及简单表示法课件文.ppt
- 2017版高数学一轮总复习第5章平面向量数系的扩充与复数的引入第一节平面向量的概念及坐标运算课件文.ppt
- 2017版高数学一轮总复习第7章不等式推理与证明第三节简单的线性规划课件文.ppt
- 2017诗歌赏之——3 诗歌鉴赏之形象.ppt
- 2017高三文专题复习课件-语言表达简明、连贯、得体2017.4.9.ppt
- 2017高三治复习-曲线类选择题(共28张PPT).ppt
- 2017高考学大二轮复习第1部分知识整合专题1化学基本概念第1讲物质的组成变化和分类.doc
文档评论(0)