Procedura: migliorare le prestazioni di un ciclo (Visual Basic)

Per ottimizzare le prestazioni di un ciclo, è possibile utilizzare i tipi di dati più efficienti. Per un ciclo breve che non viene eseguito spesso la differenza può essere trascurabile, tuttavia, nel caso di un ciclo che viene eseguito molte volte, un miglioramento delle prestazioni può essere determinante.

I tipi di dati Integer e UInteger sono i più efficienti sulle piattaforme attuali. Short, Long, UShort e ULong non sono altrettanto efficienti e Decimal è notevolmente più lento. Per ulteriori informazioni, vedere Tipi di dati numerici (Visual Basic).

Per ottimizzare le prestazioni di un ciclo For...Next

  • Utilizzare il tipo di dati più efficiente per la variabile di controllo. Nell'esempio seguente sono evidenziate alcune possibili variazioni in un ciclo. Gli intervalli assoluti dipendono dalla piattaforma, ma i confronti in fase di esecuzione sono comunque validi.

    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
    

    Il tempo di esecuzione nel primo caso è leggermente inferiore rispetto a quello del secondo caso. Tuttavia, il tipo di dati Integer può gestire solo valori fino a 2.147.483.647, mentre UInteger solo fino a 4.294.967.295. Nel secondo e nel terzo caso è possibile gestire valore più grandi, perché sia Long sia Decimal accettano un intervallo di numeri interi più ampio, ma l'esecuzione risulta più lenta. Potrebbe essere necessaria una decisione a livello strutturale tra velocità e capacità dei tipi di dati da utilizzare.

Vedere anche

Attività

Procedura: trasferire un controllo fuori da una struttura di controllo (Visual Basic)

Procedura: eseguire più istruzioni ripetutamente (Visual Basic)

Procedura: eseguire diverse istruzioni per ciascun elemento in un insieme o in una matrice (Visual Basic)

Procedura: passare alla successiva iterazione di un ciclo (Visual Basic)

Riferimenti

Istruzione For...Next (Visual Basic)

Concetti

Strutture di ciclo (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic