다음 예제의 List1은 SortedList (Of MyClass)이며 251 개의 멤버가 포함되어 있습니다.SortedList를 통한 순환 - 왜 이렇게 빠른가요?
처음 두 개의 코드 블록은 15.5 초 내에 실행됩니다.
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
이것은 5.6 초 행한다.
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
왜 그렇게 느린 처음 두 codeblocks입니까?
잘 모르겠지만 For Each 루프의 경우 For 루프보다 많은 오버 헤드가있을 수 있습니다. 따라서 두 번째 라인은 속도 향상을 담당 할 수 있습니까? 나는 정말로 모른다. –
첫 번째 두 개의 루프가 15.5 초 간격으로 걸리나요? – Artelius
@Artelius - 각 –