想要使/ proc / * / smaps输出匿名区域sum和/ proc / meminfo AnonPages匹配以精确跟踪实际内存使用情况

时间:2011-07-30 18:21:49

标签: android linux memory memory-management

我希望看到每个进程的精确内存量 用作匿名页面,因为匿名内存不能 分页,因此跟踪这种用法非常重要。

获取匿名页面总和的一种方法是读取/ proc / meminfo AnonPages。

另一种方法是将以下匹配的smaps文件中的所有条目相加:

  • 没有名字
  • [堆栈]
  • [堆]
  • 的/ dev /零
  • 的/ dev / SHM /...
  • 重新定位的部分private_dirty
      

    用于重定位的部分将针对每个流程进行更新,   这会在命名的映射区域中生成一些private_dirty区域。   Elf加载器似乎使用mprotect更改读/写属性   在进行搬迁时,很难区分这样的   来自数据部分的区域,以及制作   很难跟踪每个流程的这些用法   观点

  •   

所以我想知道如何区分上述内容   重新安置部分,并精确跟踪匿名   每个进程的内存使用情况。

也许我们应该在/ proc / * / smaps中添加新条目来显示 每个部分的匿名内存量。

我发现这个差异是在2010年10月完成的,它只是回答了我的问题。

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=blobdiff;f=Documentation/filesystems/proc.txt;h=976de6e19dd821351c1e4b52f82c72139c9598d7;hp=a563b74c7aef400ccfcd8e5e0a10cd03b94523f1;hb=b40d4f84becd69275451baee7f0801c85eb58437;hpb=d16e15f5b029fc7d03540ba0e5fb23b0abb0ebe0

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=blobdiff;f=fs/proc/task_mmu.c;h=da6b01d70f019506face0dae73f0b78c3200d299;hp=871e25ed006970667229eea95c56342836c53525;hb=b40d4f84becd69275451baee7f0801c85eb58437;hpb=d16e15f5b029fc7d03540ba0e5fb23b0abb0ebe0