Menu
Coddy logo textTech

Rendimiento de bucles

Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 13 de 66.

Optimizar el rendimiento de los bucles puede mejorar significativamente la velocidad de tu aplicación, especialmente con grandes conjuntos de datos.

Almacena la longitud de la colección en una variable antes del bucle:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // Almacenar la longitud una vez

for (int i = 0; i < length; i++) // Usar el valor almacenado
{
    Console.WriteLine(numbers[i]);
}

Evita llamadas repetidas a métodos en las condiciones de los bucles, por ejemplo:

for (int i = 0; i < GetCount(); i++)
{
    // Cuerpo del bucle
}

El método GetCount() se llama en cada iteración del bucle. Esto significa que, si el bucle se ejecuta 1000 veces, GetCount() también se ejecutará 1000 veces, porque la condición del bucle se evalúa antes de cada iteración.

Así es como se hace correctamente:

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // Cuerpo del bucle
}

GetCount() se llama solo una vez antes de que comience el bucle, y su valor se almacena en la variable count. Después, el bucle utiliza este valor almacenado en todas las iteraciones, eliminando la necesidad de llamar repetidamente al método.

Este enfoque puede hacer que tu código se ejecute más rápido al reducir las operaciones redundantes, especialmente cuando el método que se llama realiza cálculos complejos o accede a datos.

challenge icon

Desafío

Fácil

Crea un método llamado optimizedSum que:

  1. Acepte una matriz de enteros como parámetro
  2. Calcule la suma de todos los elementos
  3. Implemente un enfoque optimizado y uno no optimizado:
    • No optimizado: llama a array.Length en cada iteración del bucle
    • Optimizado: almacena en caché la longitud antes del bucle
  4. Devuelva el resultado del enfoque optimizado

Pruébalo tú mismo

public class OptimizedSum
{
    // Implementa el método optimizedSum
    public static int optimizedSum(int[] numbers)
    {
        // Escribe tu código aquí
        
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C# online