StringBuilder ile Performans Artışı

Temmuz 19, 2011

Genellikle kullandığımız string bazı durumlarda işlemlerimizi çok fazla yavaşlatabilmektedir string yerine StringBuilder kullanarak string işlemlerimizi hızlandırabiliriz.Bunu küçük bir örnekle açıklayalım ilk olarak aşağıdaki gibi basit bir tasarım yapalım.

 

 

 

 

Soldaki başla butonunda string işlemi yapıcaz sağdakinde ise aynı işlemi StringBuilder kullanarak yapıcaz ve arasındaki süre farkına bakarak hangisinin daha hızlı işlem yaptığını anlayacağız.Süre ‘ leri label1 ve label2 ‘ye aktarıcaz.Soldaki başla buton’umuzun kodlarını yazalım.

 

 

 

 

Stopwatch ile zaman ölçümünü bir önceki yazımda anlatmıştım oradan inceleyebilirsiniz ama yinede bilmeyen arkadaşlar için kısaca anlatacak olursam Stopwatch .Start ve .Stop komutları arasına yazdığınız kodların çalışma süresini hesaplar ve Elapsed özelliğindende bu süreye ulaşabiliriz. İlk olarak bildiğimiz string birleştirmesi yapıyoruz for döngüsü yardımı ile 10000 kez aynı işlemi yapıp dosya değişkenimize yazdırıyoruz daha sonra ekranda düzgün görünmesi için de bir alt satıra geçiyoruz \n diyerek daha sonra dosya değişkenimizdeki string ‘ imizi richTextBox ‘ a aktarıyoruz ve label1 ‘ e zaman’ını yazdırıyoruz.Stopwatch ‘ ı global olarak tanımlamamın sebebi 2 buton içindede kullanacak olmam.Şimdi aynı işlemi StringBuilder kullanarak yapalım ve sonucuna bakalım.

 

 

 

Burada aynı işlemi StringBuilder kullanarak yapıyoruz ve sonuca bakıyoruz.

 

 

 

 

Gördüğünüz gibi sol taraftaki label ‘da yazan rakam string ile 10000 kere işlem yapıldığındaki rakam milisaniye cinsinden sağdaki ise StringBuilder kullarak alınan sonuç , 2 si arasında neredeyse 3 kat fark var buda StringBuilder’in bundan sonraki programlarımızda daha çok bulunacagı anlamına geliyor galiba.Heryerde olmasada işlemciye yük getirebilecek string işlemlerimizi StringBuilder kullarak yapmak en akıllıca olan yoldur.İyi çalışmalar.

 

 

Kaynak Kodları Buradan İndirebilirsiniz

 

 

 

 

 

 

 

 

 

 

posted in Gerekli Bilgiler by gokhan

Follow comments via the RSS Feed | Yorum yapın | Trackback URL

Leave Your Comment

*

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org