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: passare alla successiva iterazione di un ciclo (Visual Basic)
Riferimenti
Istruzione For...Next (Visual Basic)
Concetti
Strutture di ciclo (Visual Basic)