Почему вычитание быстрее, чем сложение в Python?
Я оптимизировал некоторый код Python и попробовал следующий эксперимент:
import time
start = time.clock()
x = 0
for i in range(10000000):
x += 1
end = time.clock()
print '+=',end-start
start = time.clock()
x = 0
for i in range(10000000):
x -= -1
end = time.clock()
print '-=',end-start
Второй цикл надежно быстрее, где-то от усика до 10%, в зависимости от системы, на которой я его запускаю. Я'мы пытались варьировать порядок циклов, количество выполнений и т. д., и все равно кажется, что это работает.
Незнакомец,
for i in range(10000000, 0, -1):
(т.е. запустить цикл в обратном направлении) быстрее, чем
for i in range(10000000):
даже когда содержимое цикла идентично.
Что дает, и есть ли здесь более общий урок программирования?