linux top 命令---VIRT,RES,SHR,虚拟内存和物理内存(
VIRT,RES,SHR,虛擬內存和物理內存(轉)
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 <iostream>
?
int main()
{
??? char * p = new char [1024*1024*512];
??? getchar();
??? return 0;
}
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
原文:
http://blog.csdn.net/huyiyang2010/article/details/7815491
轉載于:https://www.cnblogs.com/catkins/p/5270397.html
總結
以上是生活随笔為你收集整理的linux top 命令---VIRT,RES,SHR,虚拟内存和物理内存(的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDA64 Fatal error be
- 下一篇: Linux0.11内核剖析--内核体系结