Compartir a través de


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

Estructuras de bucles

Referencia

Instrucción For...Next (Visual Basic)

Otros recursos

Flujo de control en Visual Basic