Serdar YILMAZ
Bizimkisi Bir “Bug” Hikayesi...
Serdivan/Sakarya
Serdar Yılmaz Baş Döndüren Dolgun While’lar !

Baş Döndüren Dolgun While’lar !

While döngüsü,While loop,döngü,loop,döngülerHerhangi bir programlama dilini öğrenmeye başladığımız da ilk karşılaştığımız konulardan biri döngülerdir.  Bu yazımız da döngülerin dönüş hızı hakkında fikir edinebilmek için basit bir program yazacağız. Yazacağız program bize net ve kesin bir sonuç vermeyecektir, sonuçta programı çalıştırdığımız her bilgisayarın donanımı aynı olmayacaktır üstelik aynı donanıma sahip olsalar dahi farklı sonuç vermeleri yüksek bir ihtimal. Amacımız döngülerin baş döndüren hızları hakkında bir fikir sahibi olmak.

While Döngüsü

C# ile hazırlayacağımız programda While döngüsünü kullanacağız. Programı hazırlarken seçeceğimiz programlama dili dahi şüphesiz döngülerin çalışma hızını etkileyecektir. Sonuçta Milisaniyeyle dahi ifade edemeyeceğimiz bir çalışma hızına sahipler. Bu yüzden programı hazırlarken gözle görülür bir sonuç elde edebilmek için While döngüsünü 1 milyar defa döndürüp, geçen süreyi hesaplayacağız.

Programın algoritmasından kısaca bahsedecek olursak; While döngüsü başlamadan hemen önce sistem saatine erişilip, saat-dakika-saniye-milisaniye değerleri alınıp “Baslangic” isimli bir değişkene aktarılmakta. While döngüsü sonlandıktan hemen sonrada yine aynı şekilde sistem saatine erişilip, saat-dakika-saniye-milisaniye değerleri alınıp “Bitis” isimli değişkene aktarılmakta. TimeSpan sınıfı kullanılarak da geçen süre hesaplanıp, Forma aktarılmakta.

Programı bir kaç kez üst üste çalıştırdığımda elde ettiğim sonuçlar;

While-1   While-2   While-3   While-4
Programı belirli aralıklarla 4 kez çalıştırdığımda bir milyar kez dönme işlemini 6 ile 7 saniye aralığında tamamladı. Eğer “Başlat” butonuna tıklama aralığını sıklaştırıp, peş peşe 4 kez tıklasaydım süreler arasında ki fark da açılacaktı. Yani belirli aralıklarla tıkladığımda döngünün tamamlanma süresinde pek fark olmazken, tıklama sıklığını arttırdığım da döngünün tamamlanma süresinde de düzensizlik olmakta.

Sonuç olarak 1 milyar defa döndürdüğümüz döngünün 6 ile 7 saniye aralığında tamamlandığını gördük. Kendi bilgisayarlarınız da denediğiniz de aynı sonucu alamayabilirsiniz ancak çıkan sonuç ile burada belirttiğimiz değerler arasında çok da büyük farklar olmayacaktır. Ayrıca döngü gövdesinde ki kod kalabalığı arttıkça sürede değişecektir.

Proje Dosyasını İndirmek İçin Tıklayınız…

Serdar Yılmaz

Bir Yorum Yapın