亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 問一下vmdata和vmrss的問題 [打印本頁]

作者: pgt112you    時間: 2013-10-09 19:55
標題: 問一下vmdata和vmrss的問題
最近寫了一個程序,這是/proc/[pid]/status里面的部分內容
VmPeak:          719544 kB
VmSize:          651928 kB
VmLck:               0 kB
VmHWM:            2628 kB
VmRSS:            2308 kB
VmData:          627036 kB
VmStk:              88 kB
VmExe:             688 kB
VmLib:            3528 kB
VmPTE:             176 kB
VmSwap:              64 kB
Threads:        11

我想問的是
1.為什么vmrss和vmdata差這么多
2.vmdata和程序代碼里的哪部分相關,是因為我定義的局部變量或者全局變量太多了嗎。
3.程序里面會動態(tài)調地用動態(tài)鏈接庫,那么在不調用的時候,動態(tài)鏈接庫的內容會算到vmdata里面嗎,還是算到vmlib里面,還是根本哪里都不計算進去
4.程序編譯的時候把一些靜態(tài)庫編譯進來了,這些靜態(tài)庫會算在vmdata里面嗎,還是算到vmlib里面
5.vmrss的是實際的物理內存的使用量,那么vmdata里面的哪些部分會被放到物理內存里面呢,按照什么規(guī)則呢
6.能夠vmstk,vmexe,vmlib,vmdata和vmrss這些能夠判斷出程序是否有內存泄露嗎
作者: pgt112you    時間: 2013-10-10 14:51
自己頂一下,別沉了。比較急
作者: myworkstation    時間: 2013-10-10 15:49
回復 1# pgt112you


    回復 1# pgt112you

VmSize(KB) 任務虛擬地址空間的大小 (total_vm-reserved_vm),其中total_vm為進程的地址空間的大小,reserved_vm:進程在預留或特殊的內存間的物理頁
VmLck(KB) 任務已經鎖住的物理內存的大小。鎖住的物理內存不能交換到硬盤 (locked_vm)
VmRSS(KB) 應用程序正在使用的物理內存的大小,就是用ps命令的參數rss的值 (rss)
VmData(KB) 程序數據段的大。ㄋ继摂M內存的大。娣懦跏蓟说臄祿; (total_vm-shared_vm-stack_vm)
VmStk(KB) 任務在用戶態(tài)的棧的大小 (stack_vm)
VmExe(KB) 程序所擁有的可執(zhí)行虛擬內存的大小,代碼段,不包括任務使用的庫 (end_code-start_code)
VmLib(KB) 被映像到任務的虛擬內存空間的庫的大小 (exec_lib)
VmPTE 該進程的所有頁表的大小,單位:kb
Threads 共享使用該信號描述符的任務的個數,在POSIX多線程序應用程序中,線程組中的所有線程使用同一個信號描述符


1、VmRSS是真實正在占用的內存,而VmData是虛擬內存,大小差異大并沒有什么問題。
2、VmData是指數據段的內存大小,存放初始化了的數據; (total_vm-shared_vm-stack_vm)
3、不調動態(tài)庫的時候是不計算的(dlopen方式)
4、靜態(tài)庫會編譯為程序本身的一部分,不在VmLib的統計之內。
5、參考上面的說明
6、除非有非常明顯的內存泄露,如內存一直大幅度增長并長時間不釋放,否則單純以來這些值是很判斷真正的內在泄露。

   
作者: pgt112you    時間: 2013-10-11 15:20
非常感謝回復 3# myworkstation


   




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2