[問題] memory leak in Linux application
看板C_and_CPP (C/C++)作者crreep (Life is random)時間16年前 (2009/10/03 00:49)推噓1(1推 0噓 5→)留言6則, 3人參與討論串1/2 (看更多)
我嘗試去寫一個在Linux上執行的程式
裡面故意去不斷得malloc一塊記憶體
然後故意不去free 大概是
void *p;
int main(){
while(1){
func();
p=NULL;
sleep(1);
}
}
void func(){
p=malloc(1024*100);
}
執行一段時間後確實會看到系統可用的記憶體在減少
但是我發現我的測試程式所使用的記憶體也不斷再增加
我的問題是
1.既然是memory leak就應該不會有辦法知道此程式所佔的記憶體正在增加
因為它所配置的記憶體有pointer指向地應該固定大小就是100KB
為何Linux還會知道它使用的記憶體再增加呢?
2.當我把測試程式kill 系統被他消耗掉的大部分都又長回來了
memory leak應該就無法在被回收 因為已經沒有pointer指向它了
為何Linux還有辦法將它們回收呢?
3.要如何寫一個會產生memory leak且系統完全無法將他回收的程式呢?
Thanks
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.11.193.247
推
10/03 00:58, , 1F
10/03 00:58, 1F
→
10/03 00:59, , 2F
10/03 00:59, 2F
→
10/03 00:59, , 3F
10/03 00:59, 3F
→
10/03 01:00, , 4F
10/03 01:00, 4F
→
10/03 01:15, , 5F
10/03 01:15, 5F
→
10/03 10:53, , 6F
10/03 10:53, 6F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章