Python для производительности цикла в глобальном пространстве и внутри функции

Я пытался понять производительность 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

Мне интересно, что делает эту огромную разницу во времени исполнения? как для производительности цикла влияет на глобальное пространство для записи внутри функции?