Python Print kodu neden yanlış çalışıyor?

Kodunuzda hata var. Yeterince iyi ölçmez o şekilde. Yine de dediğime yakın sonuç vermiş. Mertebeleri aynı.

Kod:
import timeit

ad = "Mesut"

def a():
    print("Benim adım", ad)

def b():
    print("Benim adım {}".format(ad))

def c():
    print(f"Benim adım {ad}")

def d():
    print("Benim adım " + ad)

def e():
    print(" ".join(["Benim adım", ad]))


a_list = timeit.repeat(setup="a()", globals=globals(), repeat=1_000)
b_list = timeit.repeat(setup="b()", globals=globals(), repeat=1_000)
c_list = timeit.repeat(setup="c()", globals=globals(), repeat=1_000)
d_list = timeit.repeat(setup="d()", globals=globals(), repeat=1_000)
e_list = timeit.repeat(setup="e()", globals=globals(), repeat=1_000)

a_min = min(a_list)
b_min = min(b_list)
c_min = min(c_list)
d_min = min(d_list)
e_min = min(e_list)

print(a_min)
print(b_min)
print(c_min)
print(d_min)
print(e_min)

1685048126322.png

Demek ki her zaman hızlı olmuyormuş. E tabii bir de benchmark için sisteme herhangi bir şey yapmamam var. Boşta falan değil sistem. Ama o an kendim ek bir şey yapmadım.
Print ile test yapmak ne kadar doğru bilmiyorum. Print görünce es geçiyor olabilir. Es geçmeden kastım değeri hesaplar ama print fonksiyonunu çağırmaz. Bu durumda mesela ilki anlamsız olur.

Değişkene atayıp a'yı attım.
1685048690770.png


Dediğim gibi, kayda değmeyecek bir fark. Fark etmenize imkan yok. Milyon kere çağırınca bile aralarında saniyenin on binde birinden daha az fark olduğu oluyor. Pratikte aynılar. Testi tekrar yapsanız alacağınız değerlerin farklılığı daha fazla.
 
Son düzenleme:

Geri
Yukarı