假设我有一个使用 200MB 内存的进程,它 fork()s:
python -c "import os; data='x'*200000000; os.fork(); raw_input()"
Run Code Online (Sandbox Code Playgroud)
像“top”这样的程序将显示每个进程使用 200MB,而 SHRd 内存很少,因此看起来好像这些进程总共使用了 400MB。但是,因为 fork() 为进程的内存页实现了写时复制 (COW),所以实际情况是进程总共只使用了 200MB。
为什么 top 不显示 COW 的内存比例?有没有办法让它这样做?或者我可以使用另一个命令吗?
注意:OSX 上的“top”似乎有一个 RSHRD 列,可以满足我的期望。我的问题是针对 Linux。