作者scuendless (scu)
看板EE_DSnP
標題[問題]有關memory leak
時間Thu Nov 18 17:43:52 2010
講義上(p.17)提到要是memory leak的話
會出現memory usage is increasing and doesn't seem to saturate
的狀況
其實自己之前寫程式的確有出現過
所以還滿好奇為什麼會有這種doesn't seem to saturate的狀況呢
我自己是用free -m來看記憶體使用狀況
用實驗室的電腦好像會耗到剩1X個記憶體的block,
自己的筆電有時候不小心就整個變超慢然後就當機了
不知道會有"doesn't seem to saturate"
是不是因為linux或windows自己也有在分配記憶體上的機制
那如果註定一個程式真的在執行的時候會把記憶體吃完
會有甚麼訊號警告之類嗎~
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.199
1F:推 ric2k1:"doesn't seem to saturate" 通常是你的程式有迴圈不斷的在 11/18 17:52
2F:→ ric2k1:吃記憶體。當記憶體用量超過實體記憶體的容量時,系統會 11/18 17:53
3F:→ ric2k1:開啟硬碟來做 swap space,也就是將一些 least recently 11/18 17:54
4F:→ ric2k1:used memory space swap 到硬碟之中,這種現象叫 thrashing 11/18 17:55
5F:→ ric2k1:當你的系統在做 thrashing 的時候,你可以想像把硬碟當 11/18 17:56
6F:→ ric2k1:記憶體執行起來會有多慢,慢到一定程度之後,你就會覺得 11/18 17:56
7F:→ ric2k1:整個系統當掉了... 11/18 17:57
8F:→ ric2k1:(應該是這樣子 XD) 11/18 17:57
9F:→ scuendless:喔喔喔原來如此!!感謝教授的回答!! 11/18 20:44
10F:推 a3785lexx:自從很久以前某個強者推薦我用valgrind後 11/19 23:10
11F:→ a3785lexx:我就沒有再memory leak過了歐^.< (此廣告有誇大之嫌 11/19 23:11
12F:推 MrOrz:._./ 希望有 valgrind 教學 11/20 21:13
14F:推 BBSealion:這問題在c#中是不是會好很多? 11/21 22:30
15F:→ scuendless:好教學也!! 11/21 23:22
16F:推 timrau:有內建garbage collection的語言比較不用擔心 11/22 00:17
17F:→ timrau:只要記得時常把不再使用的reference設成NULL就行了 11/22 00:18
18F:推 MrOrz:感謝 valgrind 教學 m(_ _)m 11/25 23:10