I have two similar loops in python. First one is exactly same as second one except that I attempted to optimize second loop by remembering result of repeated operation(s) in a variable
from timeit import default_timer as timer
loop1_time = 0
loop2_time = 0
for i in range(101):
start = timer()
for loop_number in range(50):
if loop_number % 3 == 0 and loop_number % 5 == 0:
a = 1
# print('FizzBuzz {} ' .format(loop_number))
elif loop_number % 5 == 0:
# print('Buzz {} '.format(loop_number))
b = 2
elif loop_number % 3 == 0:
# print('Fizz {}' .format(loop_number))
c = 3
end = timer()
loop1_time = loop1_time + (end - start)
# print("First loop took " + str(end - start))
start = timer()
for loop_number in range(50):
answer_of_3 = loop_number % 3
answer_of_5 = loop_number % 5
if answer_of_3 == 0 and answer_of_5 == 0:
# print('FizzBuzz {} ' .format(loop_number))
d = 1
elif answer_of_3 == 0:
# print('Buzz {} '.format(loop_number))
e = 2
elif answer_of_5 == 0:
# print('Fizz {}' .format(loop_number))
f = 3
end = timer()
loop2_time = loop2_time + (end - start)
# print("Second loop took " + str(end - start))
print("First loop on average took " + str(loop1_time / 101))
print("Second loop on average took " + str(loop2_time / 101))
The two prints in the end consistently show that second loop was a little slower than first loop. However by saving the results of a couple pf operations to avoid repeating the execution of those operation I was under the impression that Second loop would be faster.
Any thoughts on why Second loop is slower?