当我 cat /proc/1/smaps 文件时,我发现库通常有多达 4 个不同大小和不同 Rss/Pss 等的映射:
7f1a09696000-7f1a0982f000 r-xp 00000000 fe:04 1313975 /usr/lib/libc-2.21.so
Size: 1636 kB
Rss: 980 kB
Pss: 9 kB
Shared_Clean: 980 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 980 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: rd ex mr mw me
7f1a0982f000-7f1a09a2e000 ---p 00199000 fe:04 1313975 /usr/lib/libc-2.21.so
Size: 2044 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: mr mw me
7f1a09a2e000-7f1a09a32000 r--p 00198000 fe:04 1313975 /usr/lib/libc-2.21.so
Size: 16 kB
Rss: 16 kB
Pss: 14 kB
Shared_Clean: 0 kB
Shared_Dirty: 4 kB
Private_Clean: 12 kB
Private_Dirty: 0 kB
Referenced: 12 kB
Anonymous: 16 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: rd mr mw me ac
7f1a09a32000-7f1a09a34000 rw-p 0019c000 fe:04 1313975 /usr/lib/libc-2.21.so
Size: 8 kB
Rss: 8 kB
Pss: 8 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 8 kB
Referenced: 8 kB
Anonymous: 8 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: rd wr mr mw me ac
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么或指出一篇文章吗?
小智 6
通常,库具有从文件加载的三种不同类型的内存。这些是:
这些映射具有不同的权限。如果您查看每个映射的第一行:
7f1a09696000-7f1a0982f000 r-xp 00000000 fe:04 1313975 /usr/lib/libc-2.21.so
7f1a0982f000-7f1a09a2e000 ---p 00199000 fe:04 1313975 /usr/lib/libc-2.21.so
7f1a09a2e000-7f1a09a32000 r--p 00198000 fe:04 1313975 /usr/lib/libc-2.21.so
7f1a09a32000-7f1a09a34000 rw-p 0019c000 fe:04 1313975 /usr/lib/libc-2.21.so
Run Code Online (Sandbox Code Playgroud)
表中的第二列包含每个映射块的权限。第一个块有权限r-xp。这是代码块,因此是可读和可执行的。
第二块有 ---p。此块不可访问。它可能包含调试符号或其他一些实际上不需要执行程序的数据。
第三块有r--p。这是只读数据段。最后一个块有rw-p. 这是可写数据段。
Rss 和 Pss 等值不同的原因很简单,因为每个区域访问的内存量不同。
如果您对各个字段的含义感到好奇,请查看proc 手册页中的/proc/[pid]/smaps部分。每个部分的标题行都记录在该部分中。/proc/[pid]/maps
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |