了解Android源代码中的BINDER_VM_SIZE

时间:2015-11-21 03:35:33

标签: android linux-kernel

在档案framework/native/libs/binder/ProcessState.cpp

为什么BINDER_VM_SIZE设置为1M-8k?

#define BINDER_VM_SIZE ((1*1024*1024) - (4096 *2)) 

1 个答案:

答案 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的幂允许内核更有效地使用它   虚拟地址空间。

我自己并不完全理解这个消息,所以我只是将它粘贴在这里希望它可以帮助你理解!