首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux上VMA的开销

问Linux上VMA的开销
EN

Stack Overflow用户
提问于 2011-05-02 00:22:05
回答 1查看 482关注 0票数 0

问题:我如何知道我的进程的VMA使用了多少内存(无论是在用户空间中还是在内核中)?

我将对我正在做的事情做一个简短的解释,这样你就可以理解我为什么要问这个问题了。我在我的Linux机器上运行几个进程和一个驱动程序(内核模块)。进程内存是锁定的(不可交换),因此我希望确保模块和进程消耗的内存不会占用我总物理内存的90%。为了减少malloc开销,我使用mmap。我真正需要知道的是我的进程实际消耗了多少内存,而不是它们请求了多少内存,并且我所能告诉我的是,我只是错过了VMA在任何分配时的开销。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-02 18:41:31

经过挖掘,我找到了答案:

当我在驱动程序中时,我可以使用current->mm->map_count来了解当前进程的VMA的当前数量。将其乘以sizeof(结构vm_area_struct)将得到我想要的结果。从这里开始,计算就非常简单了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5849645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档