virt:
1、程序
「需要的
」虛擬記憶體大小,包括程序使用的庫、**、資料,以及
malloc
、new
分配的堆空間和分配的棧空間等;
2、假如程序新申請
10mb
的記憶體,但實際只使用了
1mb,那麼它會增長
10mb
,而不是實際的
1mb使用量。
3、virt = swap + res
res:
1、程序當前使用的記憶體大小,包括使用中的
malloc
、new
分配的堆空間和分配的棧空間,但不包括
swap out量;
2、包含其他程序的共享;
3、如果申請
10mb
的記憶體,實際使用
1mb,它只增長
1mb,與
virt
相反;
4、關於庫占用記憶體的情況,它只統計載入的庫檔案所佔記憶體大小。
5、res = code + data
shr:
1、除了自身程序的共享記憶體,也包括其他程序的共享記憶體;
2、雖然程序只使用了幾個共享庫的函式,但它包含了整個共享庫的大小;
3、計算某個程序所佔的物理記憶體大小公式:
res – shr;
4、swap out
後,它將會降下來。
示例#include
int main()
top:
pid user pr ni virt res shr s %cpu %mem time+ command
401 hhhhh 17 0 523m 916 792 s 0.0 0.0 0:00.00 ./main
原文:
linux 記憶體管理 和top指令
linux中,使用top指令檢視linux系統狀況,其中第四行是記憶體管理,經常我們會看到這種情況,就是空閒記憶體很小,如下 第四行 記憶體狀態 8306544k total 物理記憶體總量 8gb 7775876k used 使用中的記憶體總量 7.7gb 530668k free 空閒記憶體總量...
aix下檢視top 10 記憶體使用
ps gv head 1 ps gv sort 6b nr head檢視size項,單位1kb zxrms140b tmp ps gv head 1 ps gv sort 6b nr head pid tty stat time pgin size rss lim tsiz trs cpu mem ...
轉貼 多核環境下的記憶體屏障指令
呵呵,工作小息 抽空看了雲風的blog,發現又有好東西值得學習了,由於多核的程式設計之前接觸得比較少,所以有了這樣的文章,還是很感動的。當然不能忘記感謝前輩們百忙之中抽空寫文章,下面是轉貼的內容 周老師那個 session 正好排在我的前面。同一間會議室,而且內容我也頗有興趣。也就順理成章的聽了。講...