Menu
Coddy logo textTech

Loop Performance

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 13 / 66.

Döngü performansını optimize etmek, özellikle büyük veri kümeleriyle çalışırken uygulamanızın hızını önemli ölçüde artırabilir.

Derlemin uzunluğunu döngüden önce bir değişkende saklayın:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Uzunluğu bir kez sakla

for (int i = 0; i < length; i++) // Saklanan değeri kullan
{
    Console.WriteLine(numbers[i]);
}

Örneğin, döngü koşullarında tekrarlanan method çağrılarından kaçının:

for (int i = 0; i < GetCount(); i++)
{
    // Döngü gövdesi
}

GetCount() method, döngünün her iteration'ında called. Bu, döngü 1000 kez çalışırsa GetCount() öğesinin de 1000 kez yürütüleceği anlamına gelir; çünkü döngü koşulu her iteration'dan önce değerlendirilir.

Bunu doğru şekilde şöyle yapabilirsin:

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // Döngü gövdesi
}

GetCount() yalnızca döngü başlamadan önce bir kez çağrılır ve değeri count değişkeninde saklanır. Ardından döngü, tüm iteration'lar için bu saklanan değeri kullanarak method'u tekrar tekrar çağırma ihtiyacını ortadan kaldırır.

Bu approach, özellikle çağrılan method karmaşık hesaplamalar veya data erişimi gerçekleştirdiğinde, gereksiz işlemleri azaltarak kodunuzun daha hızlı çalışmasını sağlayabilir.

challenge icon

Görev

Kolay

optimizedSum adlı bir yöntem oluşturun:

  1. Parametre olarak bir tamsayı dizisi alır
  2. Tüm öğelerin toplamını hesaplar
  3. Hem optimized hem de Unoptimized yaklaşımı uygular:
    • Unoptimized: Her döngü yinelemesinde array.Length çağrısı yapın
    • Optimized: Uzunluğu döngüden önce önbelleğe alın
  4. Sonucu optimized yaklaşımdan döndürür

Kendin dene

public class OptimizedSum
{
    // optimizedSum metodunu uygulayın
    public static int optimizedSum(int[] numbers)
    {
        // Kodunuzu buraya yazın
        
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi