Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
ımıtini
56334 PEEK POKE 1
10 Az 12288:B-53248
20 POKE 56334,PEEK(56334)AND254:POKE | 30 FORT-0 TO 2047:POKE 40 POKE 1,PEEK(1)OR4:POKE 56334,PEEK(56334)OR |
rutin yüzde yüzden daha hızlı çalışıyor, yani 12 saniye kadar sürüyor. Şimdi diyeceksiniz ki, tamam da niye 56334 için de değişken kullanmadık. Bu tip iki veya üç kez kullanılan sayılar fazla bir hız sağlamazlar. Biraz önce kullandığımız A ve B sayıları programda 2000'den fazla kullanılıyorlardı. 5) Mümkün olduğunca az REM kullanın: Her ne kadar REM'ler programları anlamada kolaylık sağlasalar da onları hızlandırmazlar. Eğer BASIC bir REM'e rastlarsa bir sonraki satıra gidilmesi gerektiğini anlar ki, bu da zaman gerektirir. Eğer REM kullanmak zorundaysanız bunları ya programın başına ya da ana döngünün dışına koyun. 6) Sıfırları noktalarla değiştirin: BASIC sıfırlarla noktaları aynı yolla algılar ama noktalar (periyodlar) daha çabuk işleme konulurlar. Mesela POKE 53280,0'ı POKE 53280,. değiştirebilirsiniz. Bu sadece tek başına bulunan sıfırlarda işe yarar. BASIC POKE 53280,0'ı POKE 5328.,0 olarak anlar. 7) Gereksiz komut kullanmayın: Bazı programlar pek çok gereksiz komut içerirler. Bunun için en iyi örnek INT fonksiyonudur. Genellikle INT'in gereksiz olduğu POKE 49152,INT(A) gibi komutlar görmüşsünüzdür. Burada doğrudan A kullanılabilirdi çünkü BASIC komutları hiçbir adrese virgüllü sayı kabul etmezler. INT bunun için tek örnek değildir. Siz de programlarınızda buna benzer gereksiz yerlerde kullanılmış komut bulursanız onları çıkarın.
DİĞER NOKTALAR
Eğer yukarıda anlattığımız yolları denediniz ve programlarınız hâlâ çok mu yavaş çalışıyor? Üzülmeyin - İşte size birkaç yol daha: Makine dili kullanın: Bütün programınızı makine dilinde yazmanız gerekmez. Sadece fazla zaman alan yerleri makine dilinde yazarsanız bu sizin için yeterli olacaktır. Bir Compiler kullanın: BASIC'in her satırını makine diline çevirdikten sonra çalışır. Bunu makine otomatik olarak kendisi yapar ama bunu onun yerine yapan programlara Compiler denir. Bu programlar sayesinde programlar normal hallerinden 3-5 kez daha hızlı çalışabilirler. Bu programlar makine dili kadar olmasa da hızlıdırlar. Hızlı rutinler yazmayı deneyin: Önemli rutinlerinizi tekrar inceleyerek kısaltmaya çalışın. Bütün bu yolları kullanarak BASIC hız limitini aşabilirsiniz. İşte size programlarınızı hızlandırmayacak birkaç ipucu: Küçük satır numaralı programlar büyük satır numaralılardan daha hızlı çalışırlar: 1) Küçük satır numaralı programlar büyük satır numaralılardan daha hızlı çalışırlar: Küçük numaralar (10 veya 20) hafızada büyük numaralardan (1000 veya 2000) daha az yer kaplarlar. Böylece BASIC'in onları okuması daha uzun sürer. Eğer BASIC satır numaralarını rakam depolasaydı bu söylediğimiz doğru olurdu ancak BASIC bütün satır numaralarını iki bayt olarak depolamaktadır. 2) Tam sayılı değişkenler ondalık sayılı değişkenlerden daha hızlıdır: Aslında bu mantıklı gibi geliyor. Tam sayılı değişkenler daha az yer kaplıyorlar bunun için normalde hızlı çalışmaları gerek. Oysa ondalık sayılı değişkenler tam sayılılardan çok daha hızlı çalışmaktadırlar. Bunun nedeni BASIC rutinlerinin (toplama, çıkarma gibi) ondalık sayıları kullanmasıdır. Eğer bir tam sayılı değişken kullanılırsa bu ilk önce ondalık sayılı değişkene çevrilir, sonra işlem yapılır ve tekrar tam sayı haline gelir. Bu zaman kaybına neden olur. 3) Alfabede önce gelen harfli değişkenler diğerlerinden daha hızlı çalışırlar: Bazı eski BASIC'lerde bu doğrudur, çünkü BASIC'ler değişkenleri harf sırasına göre dizerler, yani A'ya Z'den daha önce ulaşılır. Ama Commodore BASIC'te değişkenler verildikleri sıraya göre dizilirler, yani bazen Z'ye A'dan önce ulaşabilirsiniz. Tabi Z'yi A'dan önce tanımladıysanız. 21
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
BASIC yavaş mıdır? Hayır, artık değil. Bu yazımızda BASIC'i daha hızlı yapmanın yollarını gösteriyoruz. Her programcının bu teknikleri bilmesi gereklidir.
Hepimiz BASIC'in yavaş olduğunu düşünürüz. Bu yavaşlık onun arkasında bulunan makine dilinden kaynaklanır. Şimdi size bir BASIC programını nasıl hızlandırabileceğinizi anlatacağım. Belki her değişiklik size çok şey kazandırmayacaktır ama bunlar toplanınca farkı siz de göreceksiniz. 1) Çok kullanılan alt programları programın başına koyun: Bu size çok zaman kazandırır, çünkü BASIC söylenen satıra gitmek için bütün satır numaralarını söylenen satır numarasıyla karşılaştırır ve bu işe programın başından başlar. Yani alt programları program başlarına koyarsanız bilgisayarın araştırma süresi azalır. 2) Eğer uzun dizeler kullanıyorsanız kısa dizeleri programın başında belirtin: Büyük ihtimalle uzun dizeler içeren programların çok yavaş çalıştıklarına tanık olmuşsunuzdur. Bunun sebebi her seferinde yeni bir değişkenin tanımlanmasıdır. BASIC, tanımlanan her yeni değişken için hafızada yer ayırır. Eğer diğer değişkenler çok uzun diziler içeriyorlarsa bunları kaydırmak uzun sürer. Bu da programın yavaş çalışmasına sebep olur. Bundan kurtulmak için bütün değişkenleri programın başında belirtin. Eğer değişken program başında bilinmiyorsa sıfıra eşitleyebilirsiniz. Bunun için en iyisi DIM kullanın. DIM AB, EF$ Burada BASIC üç değişken tanımlar ve onlara sıfır değerini koyar.
3) Sadece gerekli bölümleri esas döngüye koyun: Yanlış yerde bulunan komutları kaldırırsanız çok zaman kazanabilirsiniz. Mesela bir arcade oyununda esas döngüde her seferinde puanı yazıyorsa bu gereksizdir. Gerekli olan sadece puanda bir artış olduğunda bir alt programa gidilip yeni puanın gerektiği yere yazılmasıdır. 4) Sayıların yerine değişkenler kullanın: Değişkenler (AD, EO, MW), sayılardan
Tolga Kale'den çok daha hızlıdırlar, çünkü BASIC sayıları basamak basamak okur ve anlayabileceği bir format haline getirir. Oysa değişkenler BASIC'in her an kullanabileceği bir şekilde saklanmaktadırlar. Örnek olarak aşağıdaki program C-64'ün karakter setini ROM'dan RAM'a taşır. Bu rutin şu şekilde yazılabilir. (1)
Benim saatime göre bu rutin 30 saniye kadar sürmektedir, ama iki sayı yerine değişkenler kullanılınca; ©