C# Eğitimlerimize geçen yazımda değindiğim var tipinin performans değerlendirmesi ile farklı bir yazı ile devam ediyoruz.

Geçen yazımda şunu söylemiştim eğer bir değişkenin tipini kesin biliyorsanız bu değişkeni var ile değil bildiğiniz tipi ile tanımlamanızı tavsiye ediyorum demiştim.

Çünkü onun sebebi şudur;

var tipli değişkenin içinde tuttuğu veri tipini derleyici kendi belirlemekte ve bunun içinde arkada bir kod blogu döndürmektedir. Bu durum uzun soluklu bir projede performans kayıplarına neden olabilecektir. O yüzden bu tavsiyede bulunuyoruz.

Bu durumu da görmek için bir program hazırladık.

Yapacağımız işlem çok basit.

Bir var tipli, birde string tipli iki değişken tanımlayacağız. İki değişkene de aynı değeri gireceğiz. Ve sonrasında form üzerindeki listbox’a bunları yazdıracağız. Ama bu işlemi 100 000 kere dönen bir for döngüsü içinde yapacağız. Burada her for döngüsü için bir süre tutacağız işlemler bittiğinde ne kadar süre sürdüklerini ekranda göstereceğiz.

Şu anda anlamlandıramadığınız kod bloglarına takılmanıza gerek yok. İleride detaylı bir şekilde hepsini göreceğiz.

string Türü İle Değerlendirme

private void button1_Click(object sender, EventArgs e)
{
Stopwatch SW = new Stopwatch();

SW.Start();

for (int i = 0; i < 100000; i++)
{
var Kelime1 = "Gistway Software";
listBox1.Items.Add(Kelime1);
}

SW.Stop();

label1.Text = SW.Elapsed.ToString();

SW.Reset();
SW.Start();

for (int i = 0; i < 100000; i++)
{
string Kelime2 = "Gistway Software";
listBox2.Items.Add(Kelime2);
}

label2.Text = SW.Elapsed.ToString();

}

int Türü İle Değerlendirme

string türünü direk verdiğim değişkenin olduğu for döngüsü işlemini 37 sn de tamamlarken var tipli olan for 39 sn sürdü.

Gördüğünüz gibi tipi biliyorsa yazmak performans açısından daha iyidir.

Bir de bu değişken tipimiz int olsaydı ne olurdu ona bakalım.

private void button1_Click(object sender, EventArgs e)
{
Stopwatch SW = new Stopwatch();

SW.Start();

for (int i = 0; i < 100000; i++)
{
var Sayi1 = 0;
listBox1.Items.Add(Sayi1);
}

SW.Stop();

label1.Text = SW.Elapsed.ToString();

SW.Reset();
SW.Start();

for (int i = 0; i < 100000; i++)
{
int Sayi2 = 0;
listBox2.Items.Add(Sayi2);
}

label2.Text = SW.Elapsed.ToString();

}

int tipinde daha farklı bir zaman çıktı ama aradaki fark yine neredeyse aynı.

İşte bu sebepten dolayı var tipini zorunluluk harici tercih etmemekte fayda var değerli arkadaşlar.

Bir sonraki eğitim yazımda object veri tipini göreceğiz görüşmek dileğiyle.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.