.NET i takie tam

Pętla foreach

leave a comment »

Pętla foreach jest wolniejsza od pętli for. Dzieje się tak gdyż konieczne jest wywołanie metody wirtualnej dla każdego elementu kolekcji – a te są kosztowne szczególnie gdy pracujemy na urządzeniach przenośnych. Przykładowy kod:

int numberOfIterations = 1000000;

// kolekcja po której będziemy iterować
List<int> iList = new List<int>();

for(int i = 0; i < numberOfIterations; i++){
iList.Add(i);
}

int start = 0;
int foreachEnd = 0;
int forEnd = 0;
int tmp = 0;

// testujemy foreach
start = Environment.TickCount;

foreach (int val in iList){
tmp = val;
}

foreachEnd = Environment.TickCount – start;
tmp = 0;

// testujemy for
start = Environment.TickCount;

for (int i = 0; i < iList.Count; i++){
tmp = iList[i];
}

Pokazuje nam, że czas wykonania pętli foreach wynosi: 322 milisekundy natomiast czas pętli for: 262. Widać więc, że powrót do iteracji za pomocą for – może pomóc nam poprawić wydajność naszych aplikacji mobilnych.

Written by sakowicz

Kwiecień 20, 2007 @ 9:39 am

Napisane w .NET CF

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: