RAM调优之日志分析
D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats>, <Pause_time>
每隔一段时间。系统回收器都会打印内存回收的情况。日志的内容格式就是上面那条格式。以下是具体说明
<回收原因><回收内存总数><可用内存百分比><外部内存状态><回收占用时间>
D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9991K, external 4703K/5261K, paused 2ms+2ms
GC_CONCURRENT 并发回收
在你的程序堆栈将达到最大值的时候。并发的回收内存。
GC_FOR_MALLOC 分配时回收
假设你的程序请求内存但此时堆栈已经是满了,这种话系统会停止你的程序并回收内存。
GC_HPROF_DUMP_HEAP 当你创建HPROF文件分析内存堆栈的时候。
GC_EXPLICIT 精确释放
- 程序中明白要求回收内存。比方调用gc(最好避免主动调用应当相信回收器会自己主动在须要的时候回收内存的)
GC_EXTERNAL_ALLOC
- This happens only on API level 10 and lower (newer versions allocate everything in the Dalvik heap). A garbage collection for externally allocated memory (such as the pixel data stored in native memory or NIO byte buffers).
回收内存总数
可用内存百分比
外部内存状态
回收占用时间
并发释放时间有两个一个是回收開始时,一个是接近完毕时的时间。