我将我的
Android手机连接到eclipse.我从Logcat看到了这些消息.
你能否告诉我’GC_EXPLICIT’和’GC_EXTERNAL_ALLOC’之间的区别是什么?什么“45%免费”是什么意思?
你能否告诉我’GC_EXPLICIT’和’GC_EXTERNAL_ALLOC’之间的区别是什么?什么“45%免费”是什么意思?
10-05 12:08:34.450: DEBUG/dalvikvm(813): GC_EXTERNAL_ALLOC freed 63K,45% free 3156K/5703K,external 4113K/4348K,paused 73ms 10-05 12:08:34.480: DEBUG/dalvikvm(101): GC_EXTERNAL_ALLOC freed 55K,40% free 5883K/9799K,external 4911K/4913K,paused 124ms 10-05 12:08:37.120: DEBUG/dalvikvm(101): GC_EXPLICIT freed 84K,41% free 5870K/9799K,external 5745K/6078K,paused 104ms 10-05 12:08:40.099: DEBUG/dalvikvm(493): GC_EXPLICIT freed 14K,48% free 3782K/7175K,external 1625K/2137K,paused 75ms 10-05 12:08:45.110: DEBUG/dalvikvm(188): GC_EXPLICIT freed 57K,54% free 3203K/6855K,external 4988K/6206K,paused 78ms 10-05 12:09:05.119: DEBUG/dalvikvm(822): GC_EXPLICIT freed 349K,46% free 3696K/6727K,paused 65ms
解决方法
我强烈建议您从Google I / O 2011中获取内存管理视频演示:
http://www.youtube.com/watch?v=_CruQY55HOk
在大约14分钟后,他深入了解logcat输出中的这些含义.
GC Explicit基本上意味着应用程序已明确调用System.gc();
当您的堆开始填满并且并发GC启动时,会启动GC并发,以便在内存填满之前清除内存.