25 Şubat 2021 Perşembe

QuickBasic - 27: Program Çalışma Süresini Hesaplama

Yayınlama: 25 Şubat 2021
Program çalışma süresi; programın başlaması ile bitişi arasında geçen süredir.

Program kodlarının hantal kullanımı, değişkenlerin gereksiz veya yanlış kullanımı aynı işi yapan uzun algoritma seçilmesi program çalışma süresinin artmasına neden olur.

Bu durum küçük programlar için önemsenmeyebilir ancak büyük veri işleyen büyük programlar için programın iş yapma süresi önemli konudur. O yüzden programlamaya başladığınızda hızlı çalışan kodlama tekniklerini öğrenmek ve kullanmak ilerisi için iyi bir alışkanlık olacaktır.

QuickBasic program kodlarının çalışma süresini hesaplamak isterseniz aşağıdaki örnekten faydalanabilirsiniz.

Kodlar derlenip exe dosyaya dönüştürüldüğünde daha hızlı çalışacaktır.

Çalışma süresini hesaplamak için TIMER fonksiyonu kullanıldı.
Süre 1'den küçük ya da 0 çıkacak olursa kodlarınızı FOR x=1 TO 100 ... NEXT gibi bir döngü içine alın.

TIMER

Saat 00:00:00 dan sonra geçen anlık süreyi saniye cinsinden verir.

Aşağıdaki örnek kodlardaki program çalışma süreleri DosBox altında çalışan QuickBasic v4.5'tan alınmıştır.

Örnek 1:

t = TIMER 'program başlangıç zamanı
FOR n = 0 TO 20000
    c = SQR(n)
    PRINT c;
NEXT
CLS
PRINT "Geçen süre:"; TIMER - t; "saniye"
Geçen süre: 9.289063 saniye

Aynı işi yapan ama daha hızlı çalışan kod:
Aynı işi yapan daha da hızlı bir kodunuz varsa yorum kısmına yazabilirsiniz.

Örnek 2:  
DIM n AS INTEGER
t = TIMER 'başlangıç saati
FOR n = 0 TO 20000
    PRINT SQR(n);
NEXT
CLS
PRINT "Geçen süre:"; TIMER - t; "saniye"
Geçen süre: 9.058594 saniye

Örnek 1'de n değişkeni varsayılan değişken türü olan SINGLE'dır ve Bellekte 4 bayt yer kaplar.
Örnek 2'deki kodda n değişkeni INTEGER olarak belirlendi. Integer değişken bellekte 2 bayt yer kaplar.
İkinci kodda c değişkenine gerek olmadığı için kullanılmadı.

Örnek 3:

Aynı işi yapan ama daha yavaş çalışan kod:

DIM n AS INTEGER
t = TIMER 'başlangıç saati
WHILE n <= 20000
    PRINT SQR(n);
    n = n + 1
WEND
CLS
PRINT "Geçen süre:"; TIMER - t; "saniye"

Geçen süre: 9.339844 saniye

Örnek 4:

Aynı işi yapan başka bir örnek

DIM n AS INTEGER
t = TIMER
DO
    PRINT SQR(n);
    n = n + 1
LOOP UNTIL n > 20000
CLS
PRINT "Geçen süre:"; TIMER - t; "saniye"
Geçen süre: 9.28125 saniye

Örnek 5:

Aynı işi yapan yavaş çalışan ve eski tarz kodlama örneği
10 t! = TIMER
20 PRINT SQR(n%);
30 n% = n% + 1
40 IF n% <= 20000 THEN GOTO 20
50 CLS
60 PRINT "Geçen süre:"; TIMER - t!; "saniye"

Geçen süre: 9.289063 saniye


Önceki Bölüm: 26: Olay ile dallanma Sonraki Bölüm: 28: Hata ayıklama-1

Hiç yorum yok:

Yorum Gönder