【问题标题】:understanding dumpsys meminfo了解 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进程数据段的一部分吗?
【问题讨论】:
标签:
android
memory
android-binder
【解决方案1】:
- 我认为本地活页夹是活页夹服务,
例如框架将创建一个ApplicationThread,它是一个binder服务,当进程从zygote分叉时。
进程每创建一个binder服务,数量就会增加。
更重要的是,binder 需要在内核空间中分配的 binder 缓冲区,而
内核空间对系统来说是非常宝贵的,所以过多的 binder service 可能会造成一些麻烦。
- 本机堆供 c/c++ 使用,当您调用 malloc, new 时。
dalvik heap 是供 java 使用的,它由 dalvik(GC ?) vm 管理,当你调用 new 来创建 java 对象时
【解决方案2】:
dumpsys 的输出最好通过阅读其源代码来理解。