Menu
Coddy logo textTech

Wydajność pętli

Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 13 z 66.

Optymalizacja wydajności pętli może znacznie zwiększyć szybkość działania Twojej aplikacji, zwłaszcza w przypadku dużych zbiorów danych.

Przed pętlą zapisz długość kolekcji w zmiennej:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Zapisz długość tylko raz

for (int i = 0; i < length; i++) // Użyj zapisanej wartości
{
    Console.WriteLine(numbers[i]);
}

Unikaj wielokrotnego wywoływania metod w warunkach pętli, na przykład:

for (int i = 0; i < GetCount(); i++)
{
    // Loop body
}

Metoda GetCount() jest wywoływana przy każdej iteracji pętli. Oznacza to, że jeśli pętla wykona się 1000 razy, GetCount() również zostanie wykonana 1000 razy, ponieważ warunek pętli jest sprawdzany przed każdą iteracją.

Oto jak zrobić to poprawnie:

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // Ciało pętli
}

GetCount() jest wywoływane tylko raz przed rozpoczęciem pętli, a jego wartość jest przechowywana w zmiennej count. Następnie pętla używa tej zapisanej wartości we wszystkich iteracjach, eliminując potrzebę wielokrotnego wywoływania metody.

To podejście może przyspieszyć działanie kodu przez ograniczenie zbędnych operacji, zwłaszcza gdy wywoływana metoda wykonuje złożone obliczenia lub uzyskuje dostęp do danych.

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie optimizedSum, która:

  1. Przyjmuje tablicę liczb całkowitych jako parametr
  2. Oblicza sumę wszystkich elementów
  3. Implementuje podejście zoptymalizowane i niezoptymalizowane:
    • Niezoptymalizowane: wywołuje array.Length w każdej iteracji pętli
    • Zoptymalizowane: buforuje długość przed pętlą
  4. Zwraca wynik zoptymalizowanego podejścia

Spróbuj swoich sił

public class OptimizedSum
{
    // Zaimplementuj metodę optimizedSum
    public static int optimizedSum(int[] numbers)
    {
        // Napisz tutaj swój kod
        
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C# online