.NET çöp koleksiyonunda şimdilik anlamadığım bir sır olmalı.
C # WinForms uygulamamız, OR mapper aracıyla çok fazla nesne yükleyen bir iletişim kutusuna sahip. Bu süreç çok fazla bellek tüketir ve bu belleğin çoğunun dizeler tarafından tüketilebileceğini düşünüyoruz. Bu iletişim kutusunu açtığımızda, görev yöneticisi 900MB'lık bellek kullanımını gösterir ve sorguyu tekrar yaparak bellek dışı bir istisna alırız. Whow.
Şimdi uygulamayı en aza indirdiğimizde bir tür çöp toplama işleminin yapıldığını gördük. Bunu yaparak ve en üst düzeye çıkararak, uygulama sadece 10MB'lar tüketir. Güzel.
Ancak şimdi, sorguyu tekrar yaptığımızda, bellek tüketimi aniden 900 MB'ye atlıyor ve tekrar bellek istisnasından kurtuluyoruz.
Burada ne olur ve hafıza tüketimimizi nasıl azaltabiliriz? Bu gibi durumlarda, hafıza tüketimi nasıl araştırılıp azaltılabilir?