Neden insanlar .NET'te bellek sızıntısının diğer sızıntılarla aynı olmadığını düşünüyor?
Bellek sızıntısı, bir kaynağa eklediğinizde ve gitmesine izin vermediğiniz zamandır. Bunu hem yönetilen hem de yönetilmeyen kodlama ile yapabilirsiniz.
.NET ve diğer programlama araçları ile ilgili olarak, çöp toplama ve uygulamanızın sızmasına neden olacak durumları en aza indirmenin diğer yolları hakkında fikirler vardır. Ancak bellek sızıntılarını önlemenin en iyi yöntemi, kullandığınız platformda temeldeki bellek modelinizi ve işlerin nasıl çalıştığını anlamanız gerektiğidir.
GC ve diğer sihirlerin karışıklığınızı temizleyeceğine inanmak, bellek sızıntılarının kısa yoludur ve daha sonra bulmak zor olacaktır.
Yönetilmeyen kodlama yaparken, normalde temizlediğinizden emin olursunuz, tuttuğunuz kaynakların temizlikçinin değil, temizlik sorumluluğunuz olacağını bilirsiniz.
Öte yandan .NET'te, birçok insan GC'nin her şeyi temizleyeceğini düşünüyor. Eh, sizin için bir şeyler yapar, ancak bunun olduğundan emin olmanız gerekir. .NET birçok şeyi sarar, bu nedenle yönetilen veya yönetilmeyen bir kaynakla uğraşıp uğraşmadığınızı her zaman bilmezsiniz ve ne ile uğraştığınızdan emin olmanız gerekir. Yazı tiplerini, GDI kaynaklarını, etkin dizini, veritabanlarını vb. Kullanmak genellikle dikkat etmeniz gereken şeylerdir.
Yönetilen terimlerle, süreç öldürüldükten / çıkarıldıktan sonra gideceğini söylemek için boynumu sıraya koyacağım.
Buna rağmen birçok insan bunu görüyor ve umarım bu bitecek. Kullanıcının dağınıklığınızı temizlemek için uygulamanızı sonlandırmasını isteyemezsiniz! IE, FF vb. Olabilen bir tarayıcıya bakın, ardından Google Reader'ı açın, birkaç gün kalmasına izin verin ve ne olduğuna bakın.
Daha sonra tarayıcıda başka bir sekme açarsanız, bir siteye gidin, ardından tarayıcı sızıntısını yapan diğer sayfayı barındıran sekmeyi kapatın, tarayıcının belleği serbest bırakacağını düşünüyor musunuz? IE ile öyle değil. Google Reader'ı kullanırsam bilgisayarımda IE kısa sürede (yaklaşık 3-4 gün) 1 GiB belleği kolayca yiyecektir. Bazı haber sayfaları daha da kötüdür.