gpt4 book ai didi

memory - pmap的RSS和htop的RES一样吗?

转载 作者:IT王子 更新时间:2023-10-28 23:32:54 26 4
gpt4 key购买 nike

我运行以下简单程序

#include <stdio.h>
#include <stdlib.h>
int
main() {
malloc(1024*1024*32);
getchar();
return 0;
}

htop 给出了这个

VIRT   RES   SHR
36684 312 240

pmap -x 给出了这个

Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000 0 4 0 r-x-- a.out
0000000000600000 0 4 4 r---- a.out
0000000000601000 0 4 4 rw--- a.out
00007f063d3b7000 0 4 4 rw--- [ anon ]
00007f063f3b8000 0 228 0 r-x-- libc-2.12.1.so
00007f063f532000 0 0 0 ----- libc-2.12.1.so
00007f063f731000 0 16 16 r---- libc-2.12.1.so
00007f063f735000 0 4 4 rw--- libc-2.12.1.so
00007f063f736000 0 12 12 rw--- [ anon ]
00007f063f73b000 0 108 0 r-x-- ld-2.12.1.so
00007f063f93d000 0 12 12 rw--- [ anon ]
00007f063f958000 0 8 8 rw--- [ anon ]
00007f063f95b000 0 4 4 r---- ld-2.12.1.so
00007f063f95c000 0 4 4 rw--- ld-2.12.1.so
00007f063f95d000 0 4 4 rw--- [ anon ]
00007fff4b298000 0 12 12 rw--- [ stack ]
00007fff4b2d7000 0 4 0 r-x-- [ anon ]
ffffffffff600000 0 0 0 r-x-- [ anon ]
---------------- ------ ------ ------
total kB 36684 432 88

htoppmap 显示相同的虚拟大小(36684),但它们显示的物理内存不同(htopRES = 321 和 pmapRSS = 432)。

也许我混淆了一些东西,但是 htopRESpmapRSS 有什么区别吗?

最佳答案

所以,从顶部的手册页我们看到:

q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.

对于 pmap:

RSS: resident set size in kilobytes

所以它们似乎是同一个东西。但实际上,如果您还检查 ps,您会看到 htop 将显示与 ps 的 RSS 相同的 RES。问题是 ps 在 man 中提到他们显示的测量值有点不同:

The SIZE and RSS fields don’t count some parts of a process includingthe page tables, kernel stack, struct thread_info, and structtask_struct. This is usually at least 20 KiB of memory that is alwaysresident. SIZE is the virtual size of the process (code+data+stack).

这就是 ps 和 pmap 之间的区别,而 htop 和 pmap 实际上是一样的。

关于memory - pmap的RSS和htop的RES一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5337157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com