android log 日志分析 来自 Google I/O 2011: Memory man...

常常看到一堆这样的日志. html

D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9991K, external 4703K/5261K, paused 2ms 2ms android

在调优app性能的时候须要查看日志.android日志分几种类型: app

- GC_CONCURRENT:这是由于你的heap内存占用开始往上涨了,为了不heap内存满了而触发执行的。
- GC_FOR_MALLOC:这是因为concurrent gc没有及时执行完而你的应用又须要分配更多的内存,内存要满了,这个时候不得不停下来进行malloc gc。
- GC_EXTERNAL_ALLOC:这是为external分配的内存执行的GC,也就是上文提到的Bitmap Pixel Data之类的。
- GC_HPROF_DUMP_HEAP:这是当你作HPROF这样一个操做去建立一个HPROF profile的时候执行的。
- GC_EXPLICIT:这是因为你显式的调用了System.gc(),这是不提倡的,通常来讲咱们能够信任系统的GC。 性能

freed 2049K代表在此次GC中回收了多少内存。
65% free 3571K/9991K是heap的一些统计数据,代表此次回收后65%的heap可用,存活的对象大小3571K,heap大小是9991K。
external 4703K/5261K是Native Memory的数据。放Bitmap Pixel Data或者是NIO Direct Buffer之类的。第一个数字代表Native Memory中已分配了多少内存,第二个值有点相似一个浮动的阀值,代表分配内存达到这个值系统就会触发一次GC进行内存回收。
paused 2ms 2ms代表GC暂停的时间。从这里你能够看到越大的heap size你须要暂停的时间越长。若是是concurrent gc你会看到2个时间一个开始一个结束,这时间是很短的,但若是是其余类型的GC,你极可能只会看到一个时间,而这个时间是相对比较长的。 spa

 Google I/O 2011: Memory management for Android Apps  翻译

翻译链接 http://my.eoe.cn/futurexiong/archive/1299.html 日志

相关文章
相关标签/搜索