2011-07-12 66 views
0

我正在执行一个活动,其中我必须计算系统使用的总内存量,然后根据进程和其他实体对所用内存总量进行统计。内存使用情况分析

我使用/ proc/meminfo来获得总使用内存(总可用内存 - 总内存容量)。然后列出所有进程,并有单独的内存使用情况。 但这两个数字不匹配,这不是我所期望的。 即使所有进程都使用了全部内存,我仍无法获得7MB到使用内存的帐户。

我在这里是否缺少任何信息?

回答

0

共享库可能会混淆数字。进程可以直接共享内存。内存的某些部分静静地保留用于硬件I/O映射或其他OS内部。

+0

不可能将其感觉差异很大(很多),然后,真的。你是指“零复制”缓冲区?这些实际上是由用户进程分配和拥有的。 (_内核刚通知保持页面锁定并将地址重新映射到内核空间IIRC_)。 – sehe

1
+0

也存在为共享内存正确计费的问题。 (和页面表的共享部分) – Spudd86