Cambiar t=t+j (variable de bucle exterior) a t=t+9 dentro de dos bucles anidados aumentó el tiempo de ejecución en más del 10 %. ¿Cómo puede ser esto posible?
for(int j=-1048576;j<1048576;j+=2000) for(int i=-1048576;i<1048576;i++) t+=9;//t+=jProcesador: Celeron N3350
Miro el ensamblaje de ambos binarios. La única diferencia que noto:
t=t+9 : addl $9, -4(%rbp) t=t+j : movl -8(%rbp), %eax addl %eax, -4(%rbp)