首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

内存储器调试 D/dalvikvm( 809 ): GC_CONCURRENT freed

2012-06-28 
内存调试 D/dalvikvm( 809 ): GC_CONCURRENT freed如果在Linux下运行adb logcat命令,可以看到如下的输出:

内存调试 D/dalvikvm( 809 ): GC_CONCURRENT freed

如果在Linux下运行adb logcat命令,可以看到如下的输出:

?GC_EXTERNAL_ALLOC freed 297K, 49% free 3411K/6663K, external 24870K/26260K, paused 83ms

其中D/dalvikvm表示由dalvikvm输出的调试信息,括号后的数字代表dalvikvm所在进程的pid。

GC_CONCURRENT表示触发垃圾收集的原因,有以下几种:

GC_MALLOC, 内存分配失败时触发
GC_CONCURRENT,当分配的对象大小超过384K时触发
GC_EXPLICIT,对垃圾收集的显式调用(System.gc)
GC_EXTERNAL_ALLOC,外部内存分配失败时触发


前面Free的内存是VM中java使用的内存,external是指VM中通过JNI中Native的类中的malloc分配出的内存例如Bitmap和一些Cursor都是这么分配的。
在Davilk中,给一个程序分配的内存根据机型厂商的不同,而不同,现在的大部分的是32M了,而在VM内部会把这些内存分成java使用的内存和 Native使用的内存,它们之间是不能共享的,就是说当你的Native内存用完了,现在Java又有空闲的内存,这时Native会重新像VM申请,而不是直接使用java的。

热点排行