1. Eclipse开发调试时会弹出如下log信息,
08-29 16:07:47.960: E/dalvikvm(3126):GC_CONCURRENT freed 66K, 18% free 33560K/40647K, paused 13ms+19ms,
total 106ms
2. log得种类:
- GC_MALLOC, 内存分配失败时触发
- GC_CONCURRENT,表示是在已分配内存达到一定量之后触发的GC
- GC_EXPLICIT,表示是应用程序调用System.gc、VMRuntime.gc接口或者收到SIGUSR1信号时触发的GC。
- GC_EXTERNAL_ALLOC,外部内存分配失败时触发
- GC_FOR_ALLOC 内存分配时,发现可用内存不够时触发的GC事件。
-
GC_FOR_MALLOC: 表示是在堆上分配对象时内存不足触发的GC。
-
GC_BEFORE_OOM: 表示是在准备抛OOM异常之前进行的最后努力而触发的GC。
-
实际上,GC_FOR_MALLOC、GC_CONCURRENT和GC_BEFORE_OOM三种类型的GC都是在分配对象的过程触发的。