C# Ram Temizliği

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    furkiak
    furkiak's avatar
    Kayıt Tarihi: 29/Nisan/2014
    Erkek

    merhabalar hocalar c# üzerinde bir uygulama yazıyorum daha önceki projelerde çok büyük excel ve word dosyalarında işlem yapmamıştım şimdi bunlarla ilgili işlem yapıyorum.

    örnek verecek olursam a.xls adında bin satırlık bir dosyam var ben bunu açıyorum program içerisinde düzenliyorum ve b.xml olarak kayıt ediyorum.

    şimdi asıl sorun şu işlem normalde bittiğinde görev yöneticisinde cpu kullanımı 70 den 0 a düşüyor ama başlangıçta olan 10 mb ram kullanımı oluyor 300 mb ve bu düşmüyor.

    işte programın kullandığı ram miktarını nasıl boşaltabilriz ? 

    yani illa word excel olmasına gerek yok bi işlem sonucunda fırlayan ram miktarını nasıl boşaltabiliriz ? 


    Android Mobil Uygulama - Web Sitesi - Masaüstü Yazılım yapılır. Vitaminsiz Palyaço
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    nesneyi dispose etmen gerekiyor hocam, bunun için kullandığın sınıfn IDisposable arayüzünden türetilmiş olması gerekiyor. Aynı şekilde c# da "using" anahtar kelimesi ile de bu işlemi otomatik yaptırabilirsin

    using(var x   = new Class())

    {

    ..... işlemler

    }

     

    //bu satır sonrası X nesnesi yok edilir.

     

    açıklama : https://msdn.microsoft.com/en-us/library/yh598w02.aspx

     

    ikinci olarak da garbage collector ler var. Tavsiye edilmemekle birlikte bunu da kullanabilirsin

    https://msdn.microsoft.com/en-us/library/xe0c2357.aspx

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Kodları görmeden bir şey demek zor. 

    Kaynakları using içinde almanızı tavsiye ederim, böylece işiniz bittiğinde boşaltılabilir (boşaltılmayadabilir, GC'nin kendi insiyatifinde. Fakat her koşulda işi bitti sen bunu boşaltabilirsin diye işaretlemiş oluyorsunuz).

    İlla GC'yi zorlamak lazımsa:

    GC.Collect();

    Fakat performans olarak bir şey diyemem. Ya GC olmayan bir dille (ya da araçla) tekrar yazacaksınız programı ya da olduğu gibi bırakın. En iyis.


    Olaylara karışmayın!
Toplam Hit: 1052 Toplam Mesaj: 3
c# ram