Ne kadar bellek sızıntısı olabilir?
Bellek sızıntıları birçok defa kullandım. Genellikle yarın yok gibi malloc
-ıng olduğumda, ya da FILE *
sarkan kirli çamaşır gibi. Ben genel olarak bütün bellek en az program sonlandırıldığında temizlenir (okuma: umutsuzca umut) varsayalım. Sızan bellek program sona erer, ya da çöküyor toplanmaz herhangi bir durum var mıdır?
Cevap yaygın olarak dil-dil değişir, C odaklanalım o zaman.
Lütfen ifade hiperbolik kullanımı not, yarın yok gibi '' ve 'kirli çamaşır gibi sallanan'. Güvensiz* malloc
*ıng sevdiklerine zarar verebilir. Ayrıca, lütfen kirli çamaşırları ile dikkatli olun.
CEVAP
Hayır. İşletim sistemleri tüm kaynakları, çıktığınızda işler tarafından düzenlenen ücretsiz.
Bu işletim sistemi korur tüm kaynaklar için geçerlidir: bellek, açık dosyalar, ağ bağlantıları, pencere kolları...
Bu program çok basit ya da hatalı bir işletim sistemi ile bir işletim sistemi olmadan, ya da gömülü bir sistem üzerinde çalışıyorsa, bellek yeniden doğmuş kadar kullanışsız olabileceğini söyledi. Ama eğer olsaydı, bu durumda muhtemelen bu soruyu sormasına gerek kalmazdı.
İşletim sistemi, uzun bir süre bazı kaynakları serbest sürebilir. Örneğin, bir ağ sunucusuna bağlantı kabul etmek için kullandığı TCP bağlantı noktası düzgün program tarafından kapalı bile dakika özgür olmak için biraz zaman alabilir. Ağa bağlı bir program da olabiliruzakveritabanı nesneleri gibi kaynakları. Uzak sistem ağ bağlantısı kesildiği zaman bu kaynakları serbest, ama daha uzun yerel işletim sistemi daha sürebilir.
Neden olabilir .NET bellek sızıntısı v...
Bellek sızıntısı önlemek için gerekli ...
.NET karma tablo Vs Sözlük - Sözlük ka...
Bir " anatomisi;Bellek Sızıntısı&q...
Ne kadar büyük bir kullanıcı Aracısı d...