Совершенно новый для python и работающий над приложением, где скорость критична - по сути, в гонке за бронированием онлайн, как можно ближе к 7 утра.Пытался понять влияние на скорость выполнения, которое имеет вызов функции, поэтому я разработал очень простой тест: считайте до 1 000 000 и начинайте и заканчивайте время, используя как строку, так и вызываемую функцию.Однако полученный результат говорит о том, что функция занимает около 56% времени, которое занимает встроенный код.Должно быть, я действительно что-то упускаю.Может ли кто-нибудь объяснить это, пожалуйста.
Код:
import time
def timeit():
temp = 0
while temp < 10000000:
temp += 1
return
time1 = time.time()
temp = 0
while temp < 10000000:
temp += 1
time2 = time.time()
timeit()
time3 = time.time()
temp = 0
while temp < 10000000:
temp += 1
time4 = time.time()
timeit()
time5 = time.time()
print("direct took " + "{:.16f}".format(time2 - time1) + " seconds")
print("indirect took " + "{:.16f}".format(time3 - time2) + " seconds")
print("2nd direct took " + "{:.16f}".format(time4 - time3) + " seconds")
print("2nd indirect took " + "{:.16f}".format(time5 - time4) + " seconds")
результаты:
прямой занял 1,6094279289245605 секунд
косвенный занял 0,9220039844512939 секунд
2-е прямое заняло 1.5781939029693604 секунды
2-е прямое заняло 0.9375154972076416 секунд
Я прошу прощения за то, что пропустил что-то глупое, что я должен был сделать?