Menu
Coddy logo textTech

Loop Performance

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 13 von 66.

Die Optimierung der Schleifenleistung kann die Geschwindigkeit Ihrer Anwendung erheblich verbessern, insbesondere bei großen Datensätzen.

Speichern Sie die Länge der Auflistung in einer Variable vor der Schleife:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Store length once

for (int i = 0; i < length; i++) // Use stored value
{
    Console.WriteLine(numbers[i]);
}

Vermeiden Sie wiederholte Methodenaufrufe in Schleifenbedingungen, zum Beispiel:

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

Die GetCount()-Methode wird bei jeder Iteration der Schleife aufgerufen. Das bedeutet, dass, wenn die Schleife 1000 Mal läuft, GetCount() ebenfalls 1000 Mal ausgeführt wird, da die Schleifenbedingung vor jeder Iteration ausgewertet wird.

Hier ist, wie man es richtig macht:

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

GetCount() wird nur einmal vor dem Start der Schleife aufgerufen, und sein Wert wird in der count-Variable gespeichert. Dann verwendet die Schleife diesen gespeicherten Wert für alle Iterationen und eliminiert die Notwendigkeit, die Methode wiederholt aufzurufen.

Dieser Ansatz kann Ihren Code schneller ausführen lassen, indem redundante Operationen reduziert werden, insbesondere wenn die aufgerufene Methode komplexe Berechnungen oder Datenzugriffe durchführt.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens optimizedSum, die:

  1. Ein Array von Ganzzahlen als Parameter nimmt
  2. Die Summe aller Elemente berechnet
  3. Sowohl einen optimierten als auch einen unoptimierten Ansatz implementiert:
    • Unoptimiert: Rufen Sie array.Length in jeder Schleifeniteration auf
    • Optimiert: Cachen Sie die Länge vor der Schleife
  4. Das Ergebnis aus dem optimierten Ansatz zurückgibt

Spickzettel

Speichern Sie die Länge der Sammlung vor der Schleife in einer Variable, um wiederholten Eigenschaftszugriff zu vermeiden:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Store length once

for (int i = 0; i < length; i++) // Use stored value
{
    Console.WriteLine(numbers[i]);
}

Vermeiden Sie wiederholte Methodenaufrufe in Schleifenbedingungen, indem Sie das Ergebnis zwischenspeichern:

// Inefficient - method called every iteration
for (int i = 0; i < GetCount(); i++)
{
    // Loop body
}

// Optimized - method called once
int count = GetCount();
for (int i = 0; i < count; i++)
{
    // Loop body
}

Probier es selbst

public class OptimizedSum
{
    // Implementieren Sie die optimizedSum-Methode
    public static int optimizedSum(int[] numbers)
    {
        // Schreiben Sie Ihren Code hier
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf