Я пытался понять производительность Python для цикла, здесь я обнаружил, что для цикла с одинаковыми итерациями в глобальном пространстве занимает много времени по сравнению с одним внутри функции.
import time
MAX_NUM = 50000000
# Running for loop in global space
start = time.time()
for i in xrange(MAX_NUM):
pass
print time.time() - start
# Running th same kind of loop within a function
def foo():
for i in xrange(MAX_NUM):
pass
start = time.time()
foo()
print time.time() - start
Когда я выполняю это, я стал свидетелем огромной разницы во времени выполнения.
2.00527501106
0.811304092407
Мне интересно, что делает эту огромную разницу во времени исполнения? как для производительности цикла влияет на глобальное пространство для записи внутри функции?