Cómo: Mejorar el rendimiento de un bucle
Actualización: noviembre 2007
Puede optimizar el rendimiento de un bucle utilizando los tipos de datos más eficaces. Para un bucle corto que no se ejecuta muchas veces la diferencia podría ser insignificante. Sin embargo, si el bucle se ejecuta un gran número de veces, el ahorro en el rendimiento puede ser considerable.
Integer y UInteger son los tipos más eficaces en las plataformas actuales. Short, Long, UShort y ULong no son tan eficaces y Decimal es considerablemente más lento. Para obtener más información, consulte Tipos de datos numéricos.
Para optimizar el rendimiento de un bucle For...Next
Utilice el tipo de datos más eficaz para la variable de control. El ejemplo siguiente muestra algunas posibles variaciones en un bucle. Los cronometrajes absolutos dependen de la plataforma, pero las comparaciones en tiempo de ejecución siguen siendo válidas.
For fastest As Integer = 0 to 1000000 ' Insert statements to execute for each value of fastest. Next fastest For notAsFast As Long = 0 to 1000000 ' Insert statements to execute for each value of notAsFast. Next notAsFast For muchSlower As Decimal = 0 to 1000000 ' Insert statements to execute for each value of muchSlower. Next muchSlower
En el primer caso, la ejecución tarda un poco menos que en el segundo caso. Sin embargo, Integer puede controlar sólo valores de hasta 2,147,483,647 y UInteger sólo hasta 4,294,967,295. El segundo y tercer caso pueden controlar valores más grandes, porque Long y Decimal aceptan un intervalo más ancho de enteros, pero funcionan más despacio. Es posible que tenga que tomar una decisión de diseño entre velocidad y capacidad de los tipos de datos que utiliza.
Vea también
Tareas
Cómo: Transferir el control fuera de una estructura de control
Cómo: Ejecutar varias instrucciones de forma repetida
Cómo: Ejecutar varias instrucciones para todos los elementos de una colección o matriz
Cómo: Pasar a la siguiente iteración de un bucle
Conceptos
Referencia
Instrucción For...Next (Visual Basic)