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.

python
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)
text
499999500000
elapsed is positive: True

Konkret 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.

Təkrarlar və minimum
Təkrarlar və minimum

timeit

timeit.timeit(stmt, number=N) ifadəni N dəfə işlədir və cəmi vaxtı qaytarır:

python
import timeit