記憶體洩露很難查。
1、記憶體有沒有洩露?
2、內存在**洩露?
# ps -a | grep $ | awk ''
get_pid()
" = "" ] ; then
pid=0
echo $
return 0
fi# 得到程序號之後的空格
pos=`expr index "$text" " "`
pos=`expr $pos - 1`
#擷取程序號
pid=`echo $text | cut -c 1-$pos`
#echo pid=---$pid+++
echo $
return 0
}# cat /proc/$/status | grep vmrss | awk ''
get_mem()
/status | grep vmrss`
#沒有這個程序
if [ "$" = "" ] ; then
memory=0
echo $
return 0
fipos=`expr index "$text" " "`
text=`echo $text | cut -c $pos-`
pos=`expr index "$text" " "`
pos=`expr $pos - 1`
memory=`echo $text | cut -c 1-$pos`
#echo memory=---$memory+++
echo $
return 0
}# 最好是引數傳遞
process_name="quantum6"
# 有人指點,也可以一條命令搞定:
# ps -a | grep $ | awk ''
pid=$(get_pid $)
#沒有這個程序
if [ "$" = "0" ] ; then
max_memory=0
else
max_memory=$(get_mem $)
fiecho pid=$, max_mem=$
# 迴圈。如果記憶體增加,輸出變化情況。
while [ true ] ; do
sleep 1s
# 得到程序號
pid=$(get_pid $process_name)
if [ "$" = "0" ] ; then
# 沒找到,復位
max_memory=0
continue
fi# 得到程序使用的記憶體。
# cat /proc/$/status | grep vmrss | awk ''
current_memory=$(get_mem $)
if [ "$" = "0" ] ; then
continue
fi# 如果占用記憶體增加了,輸出
if [ $ -gt $ ] ; then
echo
echo ---------------------------------
date
diff=`expr $ - $`
echo $ - $ = $
max_memory=$
fidone
輸出如下:
乙個簡單的記憶體檢查系統
在編寫嵌入式 的時候,由於在全入市,有時候比較的注意記憶體資源的使用。在inux環境下,我使用了下面的較為簡單的記憶體檢查系統。具體不多說了,思想比較的簡單,就是記錄下每次new分配資源的時候,記錄下相關的資訊,然後在呼叫delete釋放資源的時候,找到分配的時候對應的記錄,將其刪除。如果最後,每次...
Linux 檢視某乙個程序占用記憶體情況
pid 程序的id user 程序所有者 pr 程序的優先級別,越小越優先被執行 ninice 值 virt 程序占用的虛擬記憶體 res 程序占用的物理記憶體 shr 程序使用的共享記憶體 s 程序的狀態。s表示休眠,r表示正在執行,z表示僵死狀態,n表示該程序優先值為負數 cpu 程序占用cpu...
Linux如何建立乙個程序
每個程序都有以下屬性 棧 stack 以幀為單位,當程式呼叫函式 假如該函式名為fun01 時,stack會向下增長一幀,這個幀會儲存該函式的引數 區域性變數以及返回位址,計算機將控制權交給fun01,fun01處於啟用狀態,這時 global data 和 該幀中的區域性變數共同構成了contex...