天天看點

為什麼清理這麼難

學過C語言的都知道,C寫出的代碼,超級吃記憶體的大戶就是記憶體洩露!近期在項目中遇到了類似的問題,隻不過不是C語言的記憶體洩露,而是iptables規則的洩漏!

在某個時刻,添加了一條iptables規則,在另一個時刻将它删除,這本無任何異議,可是當系統運作了一段時間後,iptables-save一看,好家夥,幾百條重複的規則顯示出來了!肯定是哪個地方沒有删除幹淨導緻的。

        這是有生命的生物做事的通病,并不是C語言怎麼怎麼地了,隻因為C語言是人設計出來的。申請/添加/出生這些開啟動作僅僅是一個特定時間,特定地點的動作,可是釋放/删除/死亡卻不受我們控制。一個地點生成的東西卻可以在很多地方消逝,一個地方生成了一個東西,大家所見即所得,馬上知道是否它/他/她真的生成了,可是我們必須時刻追蹤,才能确定它/他/她還活着。家人哪怕晚回家一刻鐘,必然會用電話催,如果不接電話,那必然心慌...我們沒法确定它/他/她的安好,正如在戰場或者刑場上,我們沒法确定敵人是否真的死了一樣,于是總是會再補一下,可是即使再補一下,還是會有幸存者。

        這個世界本就是如此,記憶體洩露還算得了什麼??

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1268897

繼續閱讀