Android GC日志消息的含义

时间:2013-03-08 02:36:32

标签: android garbage-collection android-4.0-ice-cream-sandwich android-3.0-honeycomb android-logcat

首先,我想在这里为Honeycomb粘贴一些GC日志消息。

03-08 01:31:54.354: D/dalvikvm(258): GC_CONCURRENT freed 196K, 5% free 7078K/7431K, paused 3ms+3ms
03-08 01:31:54.494: D/dalvikvm(258): GC_FOR_ALLOC freed 4K, 5% free 7073K/7431K, paused 75ms
03-08 01:31:54.494: I/dalvikvm-heap(258): Grow heap (frag case) to 7.391MB for 411152-byte allocation

我这里有4个问题。

  1. 我在Google i / o 2011中观看了视频“Android Memory Management”,但我仍然不清楚5%免费7078K / 7431K。这意味着我们在7431K堆大小中使用7078K,但7431K在这里意味着什么?因为我注意到7431K会达到很多。这个号码是否有任何政策?如果它意味着总堆大小,它应该是16M或32M或类似的东西。但这里显然不是..

  2. Honeycomb也有像Grow heap (frag case) to 7.391MB for 411152-byte allocation这样的消息,姜饼没有。这是什么意思?

  3. Honeycomb及以后的GC日志消息没有显示“外部xxxK / xxxK”等外部存储器信息,为什么?

  4. 我还注意到在ICS及更高版本中,GC日志消息的总时间也是GC_FOR_ALLOC freed 190K, 13% free 5409K/6164K, paused 67ms, total 71ms,但这里alloc gc的总时间大于暂停时间,有时您会注意到总时间时间会比暂停时间大得多。为什么?

1 个答案:

答案 0 :(得分:0)

在第3点(关于外部存储器信息),可能是因为位图是Dalvik存储器的一部分而不是现在的外部存储器,因此外部存储器与垃圾收集器几乎没有相关性。