鍍金池/ 教程/ Linux/ size 查看程序內(nèi)存映像大小
進(jìn)程管理工具
objdump 二進(jìn)制文件分析
scp 跨機(jī)遠(yuǎn)程拷貝
crontab 定時(shí)任務(wù)
readelf elf文件格式分析
pstack 跟蹤進(jìn)程棧
系統(tǒng)管理及IPC資源管理
vmstat 監(jiān)視內(nèi)存使用情況
strace 跟蹤進(jìn)程中的系統(tǒng)調(diào)用
sar 找出系統(tǒng)瓶頸的利器
ipcs 查詢進(jìn)程間通信狀態(tài)
ps 進(jìn)程查看器
性能優(yōu)化
wget 文件下載
top linux下的任務(wù)管理器
磁盤管理
size 查看程序內(nèi)存映像大小
free 查詢可用內(nèi)存
文件及目錄管理
iostat 監(jiān)視I/O子系統(tǒng)
性能監(jiān)控
程序構(gòu)建
學(xué)會(huì)使用命令幫助
gdb 調(diào)試?yán)?/span>
網(wǎng)絡(luò)工具
nm 目標(biāo)文件格式分析
lsof 一切皆文件
用戶管理工具
程序調(diào)試
ldd 查看程序依賴庫(kù)
文本處理

size 查看程序內(nèi)存映像大小

作用:查看程序被映射到內(nèi)存中的映像所占用的大小信息。

程序映射到內(nèi)存中,從低地址到高地址依次為下列段:

  • 代碼段: 只讀,可共享; 代碼段(code segment/text segment )通常是指用來存放程序執(zhí)行代碼的一塊內(nèi)存區(qū)域。這部分區(qū)域的大小在程序運(yùn)行前就已經(jīng)確定,并且內(nèi)存區(qū)域通常屬于只讀, 某些架構(gòu)也允許代碼段為可寫,即允許修改程序。在代碼段中,也有可能包含一些只讀的常數(shù)變量,例如字符串常量等。

  • 數(shù)據(jù)段: 儲(chǔ)存已被初始化了的靜態(tài)數(shù)據(jù)。數(shù)據(jù)段(data segment )通常是指用來存放程序中已初始化的全局變量的一塊內(nèi)存區(qū)域。數(shù)據(jù)段屬于靜態(tài)內(nèi)存分配。

  • BSS 段:未初始化的數(shù)據(jù)段. BSS 段(bss segment )通常是指用來存放程序中未初始化的全局變量的一塊內(nèi)存區(qū)域。BSS 是英文Block Started by Symbol 的簡(jiǎn)稱。BSS 段屬于靜態(tài)內(nèi)存分配。

  • 堆(heap ): 堆是用于存放進(jìn)程運(yùn)行中被動(dòng)態(tài)分配的內(nèi)存段,它的大小并不固定,可動(dòng)態(tài)擴(kuò)張或縮減。當(dāng)進(jìn)程調(diào)用malloc 等函數(shù)分配內(nèi)存時(shí),新分配的內(nèi)存就被動(dòng)態(tài)添加到堆上(堆被擴(kuò)張);當(dāng)利用free 等函數(shù)釋放內(nèi)存時(shí),被釋放的內(nèi)存從堆中被剔除(堆被縮減)

  • 棧(stack) :棧又稱堆棧,是用戶存放程序臨時(shí)創(chuàng)建的局部變量,也就是說我們函數(shù)括弧“{} ”中定義的變量(但不包括static 聲明的變量,static 意味著在數(shù)據(jù)段中存放變量)。除此以外,在函數(shù)被調(diào)用時(shí),其參數(shù)也會(huì)被壓入發(fā)起調(diào)用的進(jìn)程棧中,并且待到調(diào)用結(jié)束后,函數(shù)的返回值也會(huì)被存放回棧中。由于棧的先進(jìn)先出特點(diǎn),所以棧特別方便用來保存/ 恢復(fù)調(diào)用現(xiàn)場(chǎng)。從這個(gè)意義上講,我們可以把堆??闯梢粋€(gè)寄存、交換臨時(shí)數(shù)據(jù)的內(nèi)存區(qū)。

另外, 在高地址還儲(chǔ)存了命令行參數(shù)及環(huán)境變量.

因?yàn)閮?nèi)存程序映像中的各段可能位于不同的地址空間中, 它們不一定位于連續(xù)的內(nèi)存塊中. 操作系統(tǒng)將程序映像映射到地址空間時(shí), 通常將內(nèi)存程序映像劃分為大小相同的塊(也就是page, 頁(yè)). 只有該頁(yè)被引用時(shí), 它才被加載到內(nèi)存中. 不過對(duì)于程序員來說, 可以視內(nèi)存程序映像在邏輯上是連續(xù)的.

/opt/app/todeav1/colin/tests#size main
text    data     bss     dec     hex filename
1259     540      16    1815     717 main

關(guān)于程序內(nèi)存映像,這篇文章講的很好:http://blog.chinaunix.net/uid-9012903-id-2011435.html