top命令,virt,res,shr
通过以上分析,我们可以得到如下结论:

top命令通过解析/proc/<pid>/statm统计VIRT和RES和SHR字段值。

VIRT是申请的虚拟内存总量。

RES是进程使用的物理内存总和。

SHR是RES中映射至文件的物理内存总和。包括:

程序的代码段。

动态库的代码段。

通过mmap做的文件映射。

通过mmap做的匿名映射,但指明了MAP_SHARED属性。

通过shmget申请的共享内存。

/proc/<pid>/smaps内Shared_*统计的是RES中映射数量>=2的物理内存。

/proc/<pid>/smaps内Private_*统计的是RES中映射数量=1的物理内存。