que ha sido optimizar algún código Python, y probamos el siguiente experimento:¿Por qué la resta es más rápida que la suma en 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
El segundo bucle es fiable más rápido, en cualquier lugar de un pelo a un 10%, dependiendo del sistema de corro en. Intenté variar el orden de los bucles, el número de ejecuciones, etc., y parece que todavía funciona.
Extraño,
for i in range(10000000, 0, -1):
(es decir, se ejecuta el bucle hacia atrás) es más rápido que
for i in range(10000000):
incluso cuando el contenido de bucle son idénticos.
¿Qué ofrece, y hay una lección de programación más general aquí?
¿Has probado esto con 'xrange()' en lugar de 'range()', por lo que Python no tiene que asignar espacio para diez millones de enteros? Además, ¿está ejecutando esto en Python 2.xo Python 3.x, que tienen implementaciones significativamente diferentes de 'range()'? –
¿Es posible que ejecute este código en una CPU con frecuencia variable? – tzot