Satırdaki kodları azaltmak yapılan oyunu hızlandırır mı ?

Eskiden okuduğum bir makalede, oyun yazarken kodları azaltmanın oyunu daha performanslı kıldığını okumuştum. Bu doğru mu ? (Doğruysa Pyhton’da geçerlimi)
(Ör.) =
p
r
i
n
t
vb.

Teknik olarak bu iş 10 milyon satırdan 2 milyon satıra falan indiğinde geçerli değil mi? Çünkü yazılan uygulamalarda genelde 10 satırla 100 satır arasında gözle görülür bir fark olmuyor. Bunu yazdığım faktöriyel programını test ederken fark ettim. F(5) ve F(30000) arasında gözle görülür bir fark yoktu.

Teknik olarak bu iş 10 milyon satırdan 2 milyon satıra falan indiğinde geçerli değil mi?

Bu söze katılıyorum. :smile:
Ama programın çalışdığı cihazın da performansı önemli bence.

Yazılan koda göre değişir. Mesela bir yapay zeka yazıp bunu 5 NPC’e verip NPC’lerin yazılan koddaki hareketleri tekrarlaması ile beş farklı yapay zeka yazıp her bir NPC’yi farklı kombinasyonla hareket ettirmek performansı etkiler. Ama bunlar çok uç noktalar. Yani bir karakteri klavye tuşları ile hareket ettirmek için 10 satır kod ile 100 satır kod yazmak hiç bir şeyi etkilemez performans olarak.

1 Beğeni

Bu görüşe katılmıyorum. @fiRE dediği gibi yazılan koda göre değişir. Random modülünü test ederken şöyle bir kod yazmıştım:

from random import randint


def ranNum():
    numbers = []

    while True:
        random_number = randint(0, 100)
        
        if random_number not in numbers:
            numbers.append(random_number)
            continue

        else:
            print(numbers)
            break

ranNum()

Gayet basit bir kod aslında. Herkesin anlayacağı üzere randint() fonksiyonuna verdiğiniz iki uç değer arasında rastgele sayı üretip bunları bir listeye ekliyor. Eğer üretilen sayı listede varsa döngü sonlandırılıp üretilen numaralar ekrana basılıyor. randint()'in argümanlarını benim gibi 0 ve 100 verirseniz problem yok. Gayet hızlı sayılabilecek bir şekilde sonuca ulaşılıyor. Ama argümanlar arasını açtığınız zaman (yani (0, 10000) ya da (0, 1000000000) gibi) siz de göreceksiniz ki program döngüyü kırmada zorluk yaşamaya başlayacak.

Elbette bu algoritma düz mantıkla yazıldı ve yüksek performans göstermeyecek. Fakat, alternatif algoritmalarla (daha uzun kodlarla belki de) performans verimi artabilir.

Bir programın satır sayısı, o programın performansı için kesinlikle bir kriter olamaz. Örneğin; yeni satır karakterlerinin önemli olmadığı C, C++, Java ve JavaScript gibi dillerde milyonlarca satır süren bir programdaki her yeni satır karakterini silip programı tek bir satıra indirgeyebilirsiniz. Python’da da satırları ; ile ayırarak programları tek bir satıra indirgeyebilirsiniz.

Tabii mesele sadece yeni satırda değişiklik yapmak yerine kodun kendisini de değiştirmek ve böylece kodu kısaltmak olabilir. Ancak iş bir programı daha performanslı hale getirmek olunca kodların kısalacağını ya da uzayacağını söylemek yanlış olur. Kısalabilir de, uzayabilir de. Hatta aynı da kalabilir. Bu tamamen kodun bağlamı ve anlamı ile ilgili bir şey.

1 Beğeni