了解 dumpsys meminfo
Posted
技术标签:
【中文标题】了解 dumpsys meminfo【英文标题】:understanding dumpsys meminfo 【发布时间】:2012-07-27 18:52:12 【问题描述】:我有两个问题。
在dumpsys meminfo
中,有一个号码叫Local Binders
。这是什么意思?它只是一种本机指针吗?在什么情况下这个数字会增加?我观察到当这个数字增加到大约 1000 时,应用程序甚至模拟器都会崩溃。
在内存使用部分,共有三列:native
、dalvik
、total
、total=native+dalvik
。那么为什么将这两部分(native
和dalvik
)加在一起呢? dalvik
heap 不是指的Java堆,应该是Unix进程数据段的一部分吗?
【问题讨论】:
【参考方案1】:-
我认为本地活页夹是活页夹服务,
例如框架将创建一个ApplicationThread,它是一个binder服务,当进程从zygote分叉时。
进程每创建一个binder服务,数量就会增加。
更重要的是,binder 需要在内核空间中分配的 binder 缓冲区,而 内核空间对系统来说是非常宝贵的,所以过多的 binder service 可能会造成一些麻烦。
-
本机堆供 c/c++ 使用,当您调用 malloc, new 时。
dalvik heap 是供 java 使用的,它由 dalvik(GC ?) vm 管理,当你调用 new 来创建 java 对象时
【讨论】:
【参考方案2】:dumpsys
的输出最好通过阅读其源代码来理解。
【讨论】:
以上是关于了解 dumpsys meminfo的主要内容,如果未能解决你的问题,请参考以下文章
Android 进阶——Framework 核心之dumpsys命令浅析
使用Adb shell dumpsys检测Android的Activity任务栈