Почему код Python выполняется быстрее в функции?
Я столкнулся с интересной проблемой в Python, связанной с производительностью. У меня есть следующий код:
def main():
for i in xrange(10**8):
pass
main()
Этот фрагмент кода выполняется за:
real 0m1.841s
user 0m1.828s
sys 0m0.012s
Однако, когда я убираю цикл for
из функции и запускаю его напрямую:
for i in xrange(10**8):
pass
Время выполнения значительно увеличивается:
real 0m4.543s
user 0m4.524s
sys 0m0.012s
Почему так происходит? В чем разница между выполнением цикла в функции и вне ее?
Самый быстрый способ проверить наличие значения в списке
Как измерить прошедшее время в Python?
Получить различия между двумя списками с уникальными элементами
Почему 2 * (i * i) быстрее, чем 2 * i * i в Java?
Наиболее эффективный способ применения функции к массиву NumPy