Alqoritmin sürətini təxmin etmək olmaz, ölçmək lazımdır. Bu mövzuda Python-da vaxtı düzgün ölçməyi və ölçmənin hüdudlarını öyrənirik.
perf_counter ilə ölçmə
time.perf_counter() dəqiq monoton saatdır: iki çağırışın fərqi saniyələrdir. time.time() sistem saatına bağlıdır və dəyişə bilər.
import time
start = time.perf_counter()
total = sum(range(1_000_000))
elapsed = time.perf_counter() - start
print(total)
print("elapsed is positive:", elapsed > 0)499999500000
elapsed is positive: TrueKonkret saniyələri çap etmirik: onlar hər dəfə fərqlidir.
Bir ölçmə kifayət deyil
Əməliyyat sistemi başqa proseslərə keçir, keş boşdur, prosessor tezliyini dəyişir. Eyni kod bir dəfə 3 ms, başqa dəfə 6 ms ola bilər. Qayda: ölçməni təkrarlayın və minimumu götürün.
timeit
timeit.timeit(stmt, number=N) ifadəni N dəfə işlədir və cəmi vaxtı qaytarır:
import timeit