閱讀242 返回首頁    go 阿裏雲 go 技術社區[雲棲]


關於內存的一些理解

使用top查看內存進程內存時,常常涉及到關於對VIRT,RES,CODE,DATA,SWAP,Swap(進程),虛擬內存,常駐內存(物理內存),代碼段,共享內存,數據段等概念,今天自己研究一下,一方麵是記錄下來,另一方麵,希望對同學們有參考的作用。
TOP時,VIRT,RES,CODE,DATA各個字段說明如下
SWAP,即我們安裝操作係統時,設置的交換區大小,推薦位物理內存的1-2倍。Swap 空間的作用可簡單描述為:當係統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢複保存的數據到內存中。這樣,係統總是在物理內存不夠時,才進行Swap交換。

MEM:物理內存

VIRT = Virtual Image (kb),這個是我們常說的虛擬內存。我們可以理解為一個進程所需要的全部內存大小即為虛擬內存,由於內核控製物理內存和虛擬內存的映射關係,所以,就有了進程的物理內存和虛擬內存之間的區別。

RES = Resident size (kb),常駐內存,這個數值表示的是進程此時此刻所使用的物理內存大小。

CODE = Code size (kb),代碼段的大小,這個數值表示進程的代碼段的大小。

DATA = Data+Stack size (kb),數據段+堆的大小。這個數值一般表示進程運行過程中申請的內存大小。

SHR = Shared Mem size (kb),共享內存大小。
Swap = Swapped size (kb),交換過的空間大小。表示正處在交換區中的內存。

他們的關係如圖

 

內存說明

關於TOP命令的一篇不錯文章:https://unix-cd.com/vc/www/28/2007-08/7333.html

最後更新:2017-04-02 00:06:48

  上一篇:go 得到XmlHttpRequest對象封裝的函數,支持ie和firefox
  下一篇:go Jdom寫xml文件實例