Menu
Coddy logo textTech

Döngü Performansı

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]);
}

Döngü koşullarında yinelenen yöntem çağrılarından kaçının, örneğin:

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

GetCount() yöntemi döngünün her yinelemesinde çağrılır. Bu, döngü 1000 kez çalışırsa GetCount() yönteminin de 1000 kez yürütüleceği anlamına gelir; çünkü döngü koşulu her yinelemeden önce değerlendirilir.

Bunu doğru şekilde şöyle yapabilirsin:

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

GetCount() döngü başlamadan önce yalnızca bir kez çağrılır ve değeri count değişkeninde saklanır. Ardından döngü, tüm yinelemeler için bu saklanan değeri kullanarak yöntemin tekrar tekrar çağrılması gerekliliğini ortadan kaldırır.

Bu yaklaşım, özellikle çağrılan yöntem karmaşık hesaplamalar veya veri erişimi gerçekleştiriyorsa, 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 optimize edilmiş hem de optimize edilmemiş bir yaklaşım uygular:
    • Optimize edilmemiş: Her döngü yinelemesinde array.Length çağrısı yapar
    • Optimize edilmiş: Döngüden önce uzunluğu önbelleğe alır
  4. Optimize edilmiş yaklaşımdan elde edilen sonucu 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