Memory

一個程序如何吃更多/更少的虛擬記憶體(根據頂部)然後頁面大小可用?

  • October 1, 2016

作業系統在物理記憶體上執行,並為每個程序提供單獨的虛擬地址空間,用於儲存數據。使虛擬記憶體和物理記憶體之間的傳輸更容易。

作業系統將記憶體中不需要的部分劃分為頁面。因此,程序與之互動的虛擬地址空間是這些頁面的倍數。

為什麼這不是真的?為什麼實際的記憶體消耗(如我的所示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

頁大小,我的作業系統使用?

acpid使用 4256 字節的虛擬記憶體。getconf PAGESIZE顯示我的系統使用的頁面大小為 4096 字節 (4KiB)

它實際上的行為與您描述的完全一樣。

Top 的記憶體輸出就是KiB為什麼每個條目都可以被 4 整除,因為您的頁面大小是 4KiB。

引用自:https://unix.stackexchange.com/questions/313489