什么是“暂停”? GC_CONCURRENT 日志消息中的值?
我正在尝试探索 GingerBread (2.3) 中新的并发垃圾收集器的行为。
有人可以详细解释这些示例日志行(尤其是 GC_CONCURRENT 和 GC_FOR_MALLOC 的“暂停”部分)吗?
12-24 10:20:54.912 D/dalvikvm( 414): GC_CONCURRENT freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 8ms+5ms
12-24 10:20:54.963 D/dalvikvm( 414): GC_FOR_MALLOC freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 47ms
I'm trying to explore the behavior of the new concurrent garbage collector in GingerBread (2.3).
Could someone please explain these example log lines in details (especially the "paused" parts of GC_CONCURRENT
and GC_FOR_MALLOC
)?
12-24 10:20:54.912 D/dalvikvm( 414): GC_CONCURRENT freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 8ms+5ms
12-24 10:20:54.963 D/dalvikvm( 414): GC_FOR_MALLOC freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 47ms
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
GC_CONCURRENT
堆(几乎)已满。因此并发 GC 启动freed 510K
- 释放的内存量57% 可用
- 释放后的内存 %2529K/5831K
- 堆中的实际内存外部 716K/1038K
- 外部分配的内存(不在 dvm 中的内存)暂停 8ms+5ms
- GC 花费的时间对于并发集合,有两个暂停时间。一个位于集合的开头,另一个位于集合的末尾。对于非并发收集,只有一次暂停时间。
GC_CONCURRENT
Heap is (almost) full. Therefore concurrent GC kicks infreed 510K
- Amount of memory freed57% free
- Memory after freeing %2529K/5831K
- Actual mem in heapexternal 716K/1038K
- Externally allocated memory (memory that is not in dvm)paused 8ms+5ms
- time taken for GCFor concurrent collections there are two pause times. One is at the beginning of the collection and other towards the end. For non-concurrent collection there will be only one pause time.
如果您还没有,请观看此视频:
http://www.google.com/events/io/ 2011/sessions/内存管理-for-android-apps.html
if you haven't yet, check out this video:
http://www.google.com/events/io/2011/sessions/memory-management-for-android-apps.html