На днях я занимался бенчмаркингом Python, и я наткнулся на что-то интересное. Ниже приведены две петли, которые делают более или менее одно и то же. Петля 1 занимает примерно в два раза длиннее цикла 2.
Петля 1:
int i = 0
while i < 100000000:
i += 1
Петля 2:
for n in range(0,100000000):
pass
Почему первый цикл намного медленнее? Я знаю, что это тривиальный пример, но это вызвало мой интерес. Есть ли что-то особенное в функции range(), что делает ее более эффективной, чем приращение переменной таким же образом?