这是我的htop输出:
例如,我对以下Ruby脚本感到困惑:
它使用多少物理内存?3+1+8+51+51
?51
?51+51
?
是的,我在看。但是我的脚本使用的内存是哪一个?为什么有两个
—
赖玉轩
51
S?它消耗102兆字节吗?还是只有51兆字节?在外部过程RES包含在内过程RES,为什么3
,1
,8
都比较少51
?
因为过程分叉,所以有两个51。它很可能不会消耗102兆字节,因为两个进程各自使用相同的51兆字节,但是您不容易分辨。如果该内存也驻留在另一个进程中,则另一个进程RES包含内部进程,如果不是,则包含该内部进程。RES字段告诉您每个进程正在使用多少物理内存,但是其他进程可能(也可能不)使用相同的物理内存。
—
David Schwartz 2013年
如果您想知道两个进程是否使用相同的内存,请使用pmap -d <进程ID>
—
Sirch 2013年
@ LaiYu-Hsuan:是的,你错了。页面不会被复制,它们是共享的。仅当任一进程写入页面时才复制它们,然后必须取消共享它们。(这称为“写入时复制”或“ CoW”。)
—
David Schwartz
RES
列就是您要查看的列。