El original
// original loop:
double y = 44100.0;
for(int i=0; i<10000; ++i) {
double z = x/y;
}
fácilmente se pueden optimizar para
// haha:
double y = 44100.0;
double z = x/y;
y el rendimiento es bastante agradable. ;-)
EDIT: La gente sigue votando esto abajo, así que aquí está la versión no tan divertida:
Si hubiera una manera general para que la división más rápido para todos los casos, ¿no crees que los autores de compiladores podría haber sucedido sobre esto ahora? Por supuesto que lo habrían hecho. Además, algunas de las personas que hacen circuitos de FPU tampoco son exactamente estúpidas.
Por lo tanto, la única manera de obtener un mejor rendimiento es conocer la situación específica que tiene a mano y utilizar un código óptimo para eso. Lo más probable es que esto sea una pérdida total de tiempo, porque su programa es lento por alguna otra razón, como realizar operaciones matemáticas en invariantes de bucle. Ve a buscar un mejor algoritmo en su lugar.
¿eh? Esto no tiene sentido como está escrito. – mwigdahl
¿Se puede borrar un poco este ejemplo de código? – BobbyShaftoe
dado que el cuerpo del bucle no usa "i", ¿por qué no eliminar el bucle por completo? – lothar