Condividi tramite


Procedura: migliorare le prestazioni di un ciclo

Aggiornamento: novembre 2007

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.

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 che Decimal accettano un intervallo di valori 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

Procedura: eseguire più istruzioni ripetutamente

Procedura: eseguire diverse istruzioni per ciascun elemento in un insieme o matrice

Procedura: passare alla successiva iterazione di un ciclo

Concetti

Strutture di ciclo

Riferimenti

Istruzione For...Next (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic