Androi系统优化OOM问题分析.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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内存监

文档评论(0)

mhk8089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档