¿Por qué la resta es más rápida que la suma en Python?
Estaba optimizando algunos códigos Python y probé el siguiente experimento:
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
El segundo bucle es confiablemente más rápido, desde un bigote hasta un 10%, dependiendo del sistema en el que lo ejecute. He intentado variar el orden de los bucles, el número de ejecuciones, etc., y todavía parece funcionar.
Desconocido,
for i in range(10000000, 0, -1):
(es decir, ejecutar el bucle hacia atrás) es más rápido que
for i in range(10000000):
incluso cuando los contenidos del bucle son idénticos.
¿Qué da, y hay una lección de programación más general aquí?