tengo los dos bucles siguientes:Pregunta sobre velocidad de lazo
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main(){
int start=clock();
for (int i=0;i<100;i++)
cout<<i<<" "<<endl;
cout<<clock()-start<<"\n"<<endl;
cout<<"\n";
int start1=clock();
for (int j=0;j<100;++j)
cout<<j<<" "<<endl;
cout<<"\n";
cout<<clock()-start1<<" \n "<<endl;
return 0;
}
me encontré que tres veces. En las dos primeras carreras, el segundo ciclo fue el más rápido pero, en la tercera ejecución, el primer ciclo fue el más rápido. ¿Qué significa esto? ¿Cual es mejor? ¿Depende de la situación?
100 iteraciones pueden ser demasiado pequeñas para sacar conclusiones ... – Vladimir
Otra forma de comprobar cómo funciona su El código que está haciendo en el área de rendimiento es mirar el ensamblaje generado. Es probable que vea * lo mismo * generado para cada ciclo. El incremento pre-versus-post para tipos primitivos es el mismo. – GManNickG
@GMan: ¿cómo puede ser lo mismo si la semántica es diferente? De acuerdo: el optimizador probablemente detectará que el valor de retorno del postfijo no se utilizará y, por lo tanto, generará el mismo desensamblaje. – xtofl