buen día,Rendimiento de romperse un bucle en dos bucles
Suponga que tiene un simple bucle for como a continuación ...
for(int i=0;i<10;i++)
{
//statement 1
//statement 2
}
Suponga que la declaración declaración 1 y 2 eran O (1) Además de la pequeña sobrecarga de "comenzar" otro ciclo, ¿sería tan rápido como el bucle for en dos bucles (no anidados, sino secuenciales)? Por ejemplo ...
for(int i=0;i<10;i++)
{
//statement 1
}
for(int i=0;i<10;i++)
{
//statement 2
}
Por qué hago una pregunta tan tonta es que tengo un sistema de detección de colisiones (CDS) que tiene que recorrer todos los objetos. Quiero "compartimentar" la funcionalidad de mi sistema CDS por lo que se puede llamar simplemente
cds.update(objectlist);
en lugar de tener que romper mi sistema cds arriba. (No se preocupe demasiado por la implementación de mi CDS ... Creo que sé lo que estoy haciendo, simplemente no sé cómo explicarlo, lo que realmente necesito saber es si aprovecho un gran golpe de rendimiento para hacer bucles a través de todos los objetos de mi nuevo .
Como se señaló stefaanv, el costo de bucle a través de todos sus objetos por segunda vez es indeterminado con la información que has dado. – patrickn
También me gustaría señalar que las dos estructuras de control que ha publicado resuelven problemas diferentes y, por lo tanto, no se pueden comparar fácilmente en el contexto del rendimiento. – patrickn
Sin saber más detalles y sin medición real, es imposible decir qué versión es más rápida. El almacenamiento en caché, tanto los datos como las instrucciones, así como la predicción de ramas (y -tables) y la ejecución especulativa agregan mucha complejidad a la optimización actual. Buen punto en la optimización prematura. Mida primero en el mundo real, luego optimice. –