2014-12-27 74 views
2

我知道內存泄漏是不好的,我應該總是釋放動態分配的內存,並有內存泄漏是不好的做法。 我的問題是爲什麼內存泄漏考慮如此糟糕在今天的現代操作系統與大內存。我的意思是小的內存泄漏(可能少於一個MB),而不是一些消耗大量內存的大型結構。爲什麼內存泄漏如此糟糕?

+2

這取決於你的程序做什麼。如果它運行幾分鐘然後退出,這可能不成問題。如果像我工作的一些應用程序一樣,它們可能會運行多年,並且要避免重新啓動它們,那麼即使是很小的內存泄漏也可能會成爲一個重大問題。 –

+1

奇怪的問題。你可以考慮小的內存泄漏不那麼糟糕,但最終系統或你的應用程序將崩潰:)無論哪種方式,內存泄漏表明有沒有在代碼中照顧。 – davidkonrad

回答

1

你應該想想有多少內存泄漏會因爲你的代碼中的小內存泄漏造成越來越大。

2

內存泄漏是不好的,因爲如果您不採取任何措施來防止這種情況發生,它可以吃掉整個RAM。

你不知道多少時間,用戶仍將您的應用程序或服務打開。它可能持續數分鐘,數小時,數天甚至數月,一旦用戶打開軟件,如果您沒有以正確的方式實施軟件以防止內存泄漏,則可能會干擾用戶甚至崩潰操作系統!

在這一天結束,這就像如果你的問題是:人類爲什麼需要經常練習一些運動?。你可能練習運動,你的心臟會保持健康的時間更長,或者你可以承擔你自己的風險...

內存泄漏是錯誤。你必須避免錯誤,因此,你應該努力防止內存泄漏!

1

內存泄漏是不好的,因爲它表明程序員沒有考慮所有的可能性。

0

那麼,你的問題沒有簡單的答案。

是的,事實是,您運行的應用程序有很多與內存泄漏有關,是的,通常這不是用戶直接感受到的,但是,他們說在查看它的背面工作,並通過上廁所的餐廳衛生。

所以,如果你想測試一個好的程序員/程序轉到背面沒有人看的地方。

如果你婉是一個職業的一部分,人們想要做的不錯,比內存泄漏應該是一個問題。

2

內存泄漏是不好的,因爲你的程序要求的資源,並讓他們佔據了其整個生命週期,即使它並不需要它們了。如果你在程序啓動時有一個X的大小的靜態泄漏,並且它不會隨着時間的推移而增長,這是不幸的,但可能不是世界末日。如果每次執行Y時都有泄漏,這是一個更大的問題,因爲該程序的內存消耗會持續增長,最終會佔用不合理的資源量。