社区
Android
帖子详情
Android中GC_EXTERNAL_ALLOC的含义
yfllrj
2011-03-08 03:11:42
GC_EXTERNAL_ALLOC freed 297K, 49% free 3411K/6663K, external 24870K/26260K, paused 83ms
这里边的每个数字都是什么意思阿?
free 3411K/6663K和external 24870K/26260K,分别都是表示什么的阿?
...全文
1537
13
打赏
收藏
Android中GC_EXTERNAL_ALLOC的含义
GC_EXTERNAL_ALLOC freed 297K, 49% free 3411K/6663K, external 24870K/26260K, paused 83ms 这里边的每个数字都是什么意思阿? free 3411K/6663K和external 24870K/26260K,分别都是表示什么的阿?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mikefather
2011-12-19
打赏
举报
回复
楼主明白人 怎么控制native内存?为什么malloc内存一直涨?搞定否?听说debug模式下,缓存的bitmap会越来越多,不会自动清理。
BIAOBIAO齐
2011-07-22
打赏
举报
回复
赞lz
自问自答~
yfllrj
2011-03-30
打赏
举报
回复
现在是基本上搞明白了~
前面Free的内存是VM中java使用的内存,external是指VM中通过JNI中Native的类中的malloc分配出的内存,例如Bitmap和一些Cursor都是这么分配的。
在Davilk中,给一个程序分配的内存根据机型厂商的不同,而不同,现在的大部分的是32M了,而在VM内部会把这些内存分成java使用的内存和 Native使用的内存,它们之间是不能共享的,就是说当你的Native内存用完了,现在Java又有空闲的内存,这时Native会重新像VM申请,而不是直接使用java的。
例如上边的例子
free 3411K/6663K和external 24870K/26260K
如果这时需要创建一个2M的Bitmap,Native现有内存26260-24870=1390K<2048k,因此他就会向Vm申请内存,虽然java空闲的内存是
6663-3411=3252>2048,但这部分内存Native是不能使用。
但是你现在去申请2M的Native内存,VM会告诉你无法分配的,因为现在已使用的内存已经接近峰值了32M(26260+6663=32923 ),所以现在就会成force close 报OOM。
所以现在我们要检查我们的native内存的使用情况来避免OOM。
yfllrj
2011-03-14
打赏
举报
回复
怎么坛子里的牛人越来越是阿~悲剧阿~
sky123123
2011-03-09
打赏
举报
回复
是 预先进行数据的缓存 吧
yfllrj
2011-03-09
打赏
举报
回复
求解释阿~怎么没人阿~
yfllrj
2011-03-09
打赏
举报
回复
数据的缓存??
我得到的一种解释是:这个进程除开虚拟机使用的内存~
因为Android中一个进程分配的内存应该是16、24或32M。
我们这个是32M。前面的6663K是VM开销使用到的内存,24870K/26260K应该是其他开销使用的内存,例如C等。
yfllrj
2011-03-08
打赏
举报
回复
怎么没有人阿?自己顶一下吧~
yfllrj
2011-03-08
打赏
举报
回复
前边这段的意思应该是:释放了297K,现在Free的内存是49%,已用的内存是3411,总得内存是6663.
关键是不理解后边的external 24870K/26260K是什么意思?
ameyume
2011-03-08
打赏
举报
回复
貌似是垃圾回收的信息,释放了3411K,占总数6663K的49%(但3411/6663 * 100% = 51%)
期待明白人
Android
中
GC
_
EXTERNAL
_
ALLOC
的
含义
小结
经常在调试代码的时候,看到
GC
_
EXTERNAL
_
ALLOC
信息。 比如:
GC
_
EXTERNAL
_
ALLOC
freed 297K, 49% free 3411K/6663K,
external
24870K/26260K, paused 83ms 这里边的每个数字都是什么意思阿? 1。其
中
free ...
Android
D/dalvikvm(4342):
GC
_FOR_
ALLOC
freed
一般Java虚拟机要求支持verbose
gc
选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbose
gc
选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试... 745):
GC
_CONCURRENT free...
GC
_
EXTERNAL
_
ALLOC
freed
I was also looking for this information.
GC
stands for garbage-collector, which collects unused objects during runtime of your app. ...
GC
_
EXTERNAL
_
ALLOC
: Means that the VM is trying to reduce the
Android
开发Eclipse
中
DDMS
中
Heap使用及
GC
_
EXTERNAL
_
ALLOC
含义
一、先说DDMS
中
的Heap的使用,通过可以观察VM
中
的Java内存,但是无法查看通过JNI分配的内存。 直接上图,废话少说。。。 ...二:
Android
中
GC
_
EXTERNAL
_
ALLOC
的
含义
(转) 以下内容直接...
android
GC
_CONCURRENT and
GC
_
EXTERNAL
_
ALLOC
内存调试的东西D/dalvikvm( 809...
GC
_CONCURRENT 错误:当分配的对象大小超过384K时触发java回收机制,自动回收内容,联网下载的内容在内存
中
达到这个数时自动清理内存,无限重复下载然后删除的动作,所以这个错误导致
Android
80,350
社区成员
91,289
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章