Menu
Coddy logo textTech

Performance des boucles

Fait partie de la section Logique & Flux du Journey C# de Coddy. Leçon 13 sur 66.

Optimiser les performances d’une boucle peut améliorer considérablement la vitesse de votre application, notamment avec de grands ensembles de données.

Stockez la longueur de la collection dans une variable avant la boucle :

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Stocker la longueur une seule fois

for (int i = 0; i < length; i++) // Utiliser la valeur stockée
{
    Console.WriteLine(numbers[i]);
}

Évitez les appels répétés à une méthode dans les conditions de boucle, par exemple :

for (int i = 0; i < GetCount(); i++)
{
    // Corps de la boucle
}

La méthode GetCount() est appelée à chaque itération de la boucle. Cela signifie que si la boucle s’exécute 1000 fois, GetCount() sera également exécutée 1000 fois, car la condition de la boucle est évaluée avant chaque itération.

Voici comment le faire correctement :

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // Corps de la boucle
}

GetCount() est appelé une seule fois avant le début de la boucle, et sa valeur est stockée dans la variable count. Ensuite, la boucle utilise cette valeur stockée pour toutes les itérations, ce qui évite d’avoir à appeler la méthode à plusieurs reprises.

Cette approche peut accélérer l’exécution de votre code en réduisant les opérations redondantes, en particulier lorsque la méthode appelée effectue des calculs complexes ou un accès aux données.

challenge icon

Défi

Facile

Créez une méthode appelée optimizedSum qui :

  1. Prend un tableau d’entiers en paramètre
  2. Calcule la somme de tous les éléments
  3. Implémente une approche optimisée et une approche non optimisée :
    • Non optimisée : appelez array.Length à chaque itération de la boucle
    • Optimisée : mettez la longueur en cache avant la boucle
  4. Retourne le résultat de l’approche optimisée

Essayez vous-même

public class OptimizedSum
{
    // Implémentez la méthode optimizedSum
    public static int optimizedSum(int[] numbers)
    {
        // Écrivez votre code ici
        
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur C# en ligne