Cómo: Mejorar el rendimiento de un bucle (Visual Basic)

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, vea Tipos de datos numéricos (Visual Basic).

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 solo puede trabajar con valores de hasta 2.147.483.647, mientras que UInteger solo puede hacerlo con valores de hasta 4.294.967.295. En el segundo y tercer caso se puede trabajar con valores más grandes, porque tanto Long como Decimal aceptan un rango mayor de enteros, pero se ejecutan 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 (Visual Basic)

Cómo: Ejecutar varias instrucciones de forma repetida (Visual Basic)

Cómo: Ejecutar varias instrucciones para todos los elementos de una colección o matriz (Visual Basic)

Cómo: Pasar a la siguiente iteración de un bucle (Visual Basic)

Referencia

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

Conceptos

Estructuras de bucles (Visual Basic)

Otros recursos

Flujo de control en Visual Basic