İşlemin Gerçekleşme Süresini Hesaplama

Merhabalar.

Python’da çalıştırılan bir programın/kodun ne kadar sürede gerçekleştiğini milisaniye cinsinden görmek için ne yapabilirim?

Mesela,

a = 10
b = 20
print(a*b)

200
43 ms'de tamamlandı.

Herhangi bir problemi 2 farklı yöntemle çözerken hangisnin daha hızlı olduğunu gözlemlemek istiyorum.

import time

class timer:
    def baslat(self):
        self.baslangic = time.perf_counter()

    def bitir(self):
        self.bitis = time.perf_counter()
        fark = (self.bitis-self.baslangic)*1000
        print(f"{fark} ms'de tamamlandı.")


timer = timer()

timer.baslat()
a = 10
b = 20
print(a*b)
timer.bitir()
quit()

200
0.032099999999993245 ms'de tamamlandı.

En basitinden:

import datetime
an = datetime.datetime.now()
a=3
b=4
c=a*b
print(c)
an1 = datetime.datetime.now()
print(an1-an)  ```
1 Beğeni

timeit modülünü kullanabilirsin, aşağıda bir örnek var.

from timeit import timeit as tit

testcode1 = """
prime = []
era = [0 for i in range(1000001)]
for i in range(2, 1000001):
    if(era[i] == 0):
        prime.append(i)
        k = i + i
        while(k < 1000001):
            era[k] = 1
            k += i
"""

testcode2 = """
prime = []
from math import sqrt
for i in range (2,1000000):
    for a in range (2,int(sqrt(i))):
        if (i%a)==0:
            break
    else:
        prime.append(i)
"""

testcode3 = """
prime = []
for i in range (2,1000000):
    for a in range (2,i//2):
        if (i%a)==0:
            break
    else:
        prime.append(i)
"""



print("testcode1", tit(stmt = testcode1, number = 1))
print("testcode2", tit(stmt = testcode2, number = 1))
print("testcode3", tit(stmt = testcode3, number = 1))
1 Beğeni