內存泄漏
編輯在計算機科學中,內存泄漏是一種資源泄漏,當計算機程序以不再釋放不再需要的內存的方式錯誤地管理內存分配時,就會發生這種情況。當對象存儲在內存中但運行代碼無法訪問該對象時,也可能發生內存泄漏。內存泄漏的癥狀類似于許多其他問題,通常只能由有權訪問程序源代碼的程序員診斷。
當計算機程序使用的內存超過必要時,就會發生空間泄漏。與從不釋放泄漏的內存的內存泄漏相反,空間泄漏消耗的內存被釋放,但比預期的要晚。
因為它們會在應用程序運行時耗盡可用的系統內存,所以內存泄漏通常是軟件老化的原因或促成因素。
內存泄漏的后果
編輯內存泄漏會通過減少可用內存量來降低計算機的性能。最終,在最壞的情況下,過多的可用內存可能會成為分配全部或部分系統或設備停止正常工作,該應用程序失敗,或者系統xxx減緩了因顛簸。
內存泄漏可能不嚴重,甚至無法通過常規方法檢測到。在現代操作系統中,應用程序終止時會釋放應用程序使用的普通內存。這意味著可能不會注意到程序僅運行很短時間的內存泄漏,而且很少發生。
更嚴重的泄漏包括:
- 程序運行時間較長,并且隨著時間的推移會占用更多內存,例如服務器上的后臺任務,但尤其是在可能會運行多年的嵌入式設備中
- 經常為一次性任務分配新內存的位置,例如渲染計算機游戲或動畫視頻的幀時
- 程序可以請求?不釋放的內存(例如共享內存)的地方,即使程序終止也是如此
- 內存非常有限的地方,例如在嵌入式系統或便攜式設備中
- 操作系統或內存管理器中發生泄漏的位置
- 當系統設備驅動程序導致泄漏時
- 運行在不會在程序終止時自動釋放內存的操作系統上。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/116258/