List1 en el siguiente ejemplo es SortedList (Of MyClass) y contiene 251 miembros.Ciclismo a través de SortedList: ¿por qué es más rápido?
Los primeros dos bloques de código se ejecutan en 15.5 segundos.
For cnt As Integer = 1 To 1000000
For Each TempDE In List1
Dim F As String = TempDE.Key
TempDE.Value.x1 = 444
Next
Next
For cnt As Integer = 1 To 1000000
For Each TempDE As KeyValuePair(Of String, phatob) In List2
Dim F As String = TempDE.Key
TempDE.Value.x1 = 444
Next
Next
Esta uno ejecuta en 5,6 segundos.
For cnt As Integer = 0 To 999999
For cnt2 As Integer = 0 To 250
Dim F As String = List1.Keys(cnt2)
List1.Values(cnt2).x1 = 444
Next
Next
¿Por qué los dos primeros bloques de código de manera mucho más lenta?
No estoy seguro, pero quizás el bucle For Each tenga una sobrecarga mayor que el bucle For sobre los enteros. Por lo tanto, la segunda línea podría ser responsable de la aceleración? Realmente no lo sé –
¿Los primeros dos bucles toman 15.5 segundos JUNTOS, o CADA UNO? – Artelius
@Artelius - Cada –