一个进程如何吃更多/更少的虚拟内存(根据顶部)然后页面大小可用?

Jun*_*aga 2 memory virtual-memory

操作系统在物理内存上运行,并为每个进程提供单独的虚拟地址空间,用于存储数据。使虚拟内存和物理内存之间的传输更容易。
操作系统将内存的一部分(它本身不需要)划分为页面。因此,与进程交互的虚拟地址空间是这些页面的倍数。

为什么这不是真的?为什么实际内存消耗(如我的top)不是倍数,

PID    VIRT     TIME+  COMMAND
  986  212076  11:22.29 Xorg
 1194  504916   1:56.15 pulseaudio
 1252  445884   0:13.69 xfce4-terminal
  827    4256   0:08.16 acpid
Run Code Online (Sandbox Code Playgroud)

页面大小,我的操作系统使用?

acpid使用 4256 字节的虚拟内存。getconf PAGESIZE显示我的系统使用了 4096 字节 (4KiB) 的页面大小

Jul*_*ier 5

它实际上的行为与您描述的完全一样。

Top 的内存输出在KiB这就是为什么每个条目都可以被 4 整除的原因,因为您的页面大小是 4KiB。

  • 放下它。我见过**更糟糕的**。 (3认同)