作家
登录

Android GC原理探究

作者: 来源: 2017-05-19 10:10:51 阅读 我要评论

4、GC Log

当我们想要根据GC日记来追查一些GC可能造成的卡立时,我们须要懂得GC日记的构成,不合信息代表了什么含义。

4.1 Dalvik GC日记

dalvik的日记格局根本如下:

  1. D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <Pause_time>, <Total_time> 
  • gc_reason:就是我们上文提到的,是gc_alloc照样gc_concurrent,懂得到不合的原因便利我们做不合的处理。
  • amount_freed:表示体系经由过程此次GC操作释放了若干内存
  • Heap_stats:中会显示当前内存的余暇比例以及应用情况(晃荡对象所占内存 / 当前法度榜样总内存)
  • Pause_time:表示此次GC操作导致应用法度榜样暂停的时光。关于这个暂停的时光,在2.3之前GC操作是不克不及并发进行的,也就是体系正在进行GC,那么竽暌功用法度榜样就只能壅塞住等待GC停止。而自2.3之后,GC操作改成了并发的方法进行,就是说GC的过程中不会影响到应用法度榜样的┞俘常运行,然则在GC操作的开端和停止的时刻会短暂壅塞一段时光,所以还有后续的一个total_time。
  • Total_time : 表示本次GC所花费的总时光和膳绫擎的Pause_time,也就是stop all是不一样的,卡立时光重要看膳绫擎的pause_time。

Large Object Space就是一些离散地址的集合,用来分派一些大年夜对象大年夜而进步了GC的治理效力和整体机能,类似如下图:

3.1 Java堆

4.2 Art GC日记

  1. I/art: <GC_Reason> <Amount_freed>, <LOS_Space_Status>, <Heap_stats>, <Pause_time>, <Total_time> 

根本情况和Dalvik没有什么差别,GC的Reason更多了,还多了一个OS_Space_Status

  • LOS_Space_Status:Large Object Space,大年夜对象占用的空间,这部分内存并不是分派在堆上的,但仍属于应用法度榜样内存空间,重要用来治理 bitmap 等占内存大年夜的对象,避免因分派大年夜内存导致堆频繁 GC。

写在最后:图片来源自收集,特别鸣谢老罗。


  推荐阅读

  “互联网+”下船舶业十大发展趋势

“互联网+”已深刻社会各范畴,有“综合工业之冠”的船舶业袈溱物联网、大年夜数据、云计算等技巧的影响下,传统基本举措措施和立异要素日益变更,行业生态体系和成长>>>详细阅读


本文标题:Android GC原理探究

地址:http://www.17bianji.com/lsqh/35313.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)