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.
Görev
KolayoptimizedSum adlı bir yöntem oluşturun:
- Parametre olarak bir tamsayı dizisi alır
- Tüm öğelerin toplamını hesaplar
- 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
- 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
}
}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
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null SafetyKendi başına pratik yap: Online C# derleyicisi