在档案framework/native/libs/binder/ProcessState.cpp
为什么BINDER_VM_SIZE
设置为1M-8k?
#define BINDER_VM_SIZE ((1*1024*1024) - (4096 *2))
答案 0 :(得分:0)
最初不是这个值,你可以发现(来自git commit log)它的第一个值是
#define BINDER_VM_SIZE (1*1024*1024)
然后有人将此值更改为
#define BINDER_VM_SIZE ((1*1024*1024) - (4096 *2))
使用以下提交消息:
修改活页夹以请求1M - 2页而不是1M页。支持 存储在内核中需要一个保护页面,因此1M分配片段 记忆非常糟糕。减去几页以使它们适合 2的幂允许内核更有效地使用它 虚拟地址空间。
我自己并不完全理解这个消息,所以我只是将它粘贴在这里希望它可以帮助你理解!