我知道每個進程都有自己的操作系統分配的地址空間。所以當程序終止時,整個地址空間被標記爲無效(或者可以自由地再次使用)。現在,如果上述過程泄漏內存,程序終止後它會有什麼區別嗎?內存泄漏和操作系統
也就是說,如果我的程序在某段時間後終止或者以持續的開始 - 結束機制在短時間間隔內運行,那麼內存泄漏會有多大的區別? (我假設泄漏不足以導致平均系統抖動)
我知道泄漏是不好的 - 但我的問題源於這樣的觀點:假設一個對象正在被用於代碼的最終例程 - 不會固定泄漏有什麼不同,因爲過程將在此之後終止?
感謝提前:)
取決於操作系統 –
AFAIR,在Windows NT中終止進程將釋放它所使用的任何內存,無論是否泄漏。不確定在其他操作系統上。 –
是否意味着某些操作系統會按原樣離開地址空間,除非所有動態分配的空間都被明確釋放?那需要一些機制來維護這樣的清單,不是嗎? – sandt1g3r