Глобальный код в два раза медленнее локального

Почему код на уровне модуля исполняется в два раза медленнее такого же кода в функции?

global.py local.py

s = 0
for i in range(100_000_000):
s += i
print(s)



def main():
s = 0
for i in range(100_000_000):
s += i
print(s)


main()
Десять секунд: Против пяти:
$ time -p python global.py
4999999950000000
real 9.58
user 9.56
sys 0.00
$ time -p python local.py
4999999950000000
real 4.76
user 4.75
sys 0.00

Проверено на CPython 3.7, 3.10, 3.12.


Ответы (0 шт):