Garbage Collector – Tahsis Edilmiş Alan Boyutunu Öğrenmek

Garbage Collector(Çöp toplayıcı) sınıfı yazmış olduğumuz programımızın heap alanındaki referansları herhangi bir zamanda siler. Garbage Collector mekanizmasının ne zaman devreye gireceği kesin olarak bilinmez. GC mekanizması bellek alanını optimum tutacak şekilde kendini ayarlar. Garbage Collector sınıfı ile istediğimiz bir anda GC mekanizmasının devreye girmesini sağlayabiliriz. Bunun için GC.Collect(); metodunu çağırmamız yeterli olacaktır.
Peki programın bellekte tahsis etmiş olduğu alanı nasıl öğrenebiliriz. Bunun için Garbage Collector sınıfı içerisinde tahsis edilmiş alan boyutunu bize byte olarak veren GetTotalMemory(true/false) metodunu kullanabiliriz. Metot içerisinde bool türünde bir parametre almaktadır. Eğer parametre true olarak atanırsa değer döndürülmeden önce GC mekanizması devreye girer ve değeri döndürmeden önce belleği temizler. Parametre olarak false atanırsa hiçbir işlem yapılmadan sadece o anki bellekte tahsis edilmiş alan boyutunu bize döndürür.

[csharp]

Console.WriteLine(GC.GetTotalMemory(true)+" byte");

[/csharp]

GC.GetTotalMemory

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

2 Responses

  1. Mert.Aydo dedi ki:

    faydalı bir ipucu. istatistiksel bilgileri gösterdiğim formumda bu metodu kullanmış oldum.

  2. Ufuk AKKAYA dedi ki:

    WinForm uygulamalarında form içinde formu açıp kapattığınızda ram kullanımı artıyor taki GC rami temizleyene kadar. Eğer formun başında GC.Collect() yaparanız ram temizleniyor ve temizlenen yeri yine form kullanıyor ram kullanımı artmıyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.