El analizador de código de los procesadores Intel es capaz de adivinar los "prefetchs" necesarios con más eficiencia que los programadores del kernel y GCC, hasta el punto de que las microoptimizaciones del kernel y GCC provocan una disminución del rendimiento.
#2 Buen ejemplo... o no puesto que ambas subrutinas solo sirven para multiplicar diez por diez, cosa que no se utiliza nunca. Y si se utilizase, ambas rutinas serían superoptimizadas por un hipotético supercompilador así:
Comentarios
#3 Usa tu supercompilador ahora
:_equisddiezcpu
mov ax,[equis]
mov bx,10
div bx
ret
:_equisddiezcod
mov ax,[equis]
shr ax
mov bx,ax
shr ax
shr ax
sub ax,bx
ret
Adivine que subrutina se ejecuta más rápido.
:_diezxdiezcpu
mov ax,10
mov bx,10
mul bx
ret
:_diezxdiezcod
mov ax,10
shl ax
mov bx,ax
shl ax
shl ax
add ax,bx
ret
#2 Buen ejemplo... o no puesto que ambas subrutinas solo sirven para multiplicar diez por diez, cosa que no se utiliza nunca. Y si se utilizase, ambas rutinas serían superoptimizadas por un hipotético supercompilador así:
:_diezxdiez
mov eax, 100
ret
Hace falta código real para probar estas cosas.
Entonces no serán microoptimizaciones