Dlaczego odejmowanie jest szybsze niż dodawanie w Pythonie?
Optymalizowałem trochę kodu Pythona i próbowałem następującego eksperymentu:
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
Druga pętla jest niezawodnie szybsza, od wąsy do 10%, w zależności od systemu, na którym ją uruchamiam. Próbowałem zmienić kolejność pętli, liczbę wykonań itp. I nadal wydaje się działać.
Nieznajomy,
for i in range(10000000, 0, -1):
(tzn. uruchomienie pętli wstecz) jest szybsze niż
for i in range(10000000):
nawet gdy zawartość pętli jest identyczna.
Co daje, a czy jest tu bardziej ogólna lekcja programowania?