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
頁大小,我的作業系統使用?
acpid
使用 4256 字節的虛擬記憶體。getconf PAGESIZE
顯示我的系統使用的頁面大小為 4096 字節 (4KiB)
它實際上的行為與您描述的完全一樣。
Top 的記憶體輸出就是
KiB
為什麼每個條目都可以被 4 整除,因為您的頁面大小是 4KiB。