Sugerencias para mejorar el rendimiento de .NET

El término rendimiento suele hacer referencia a la velocidad de ejecución de un programa. A veces se puede aumentar la velocidad de ejecución si se siguen algunas reglas básicas en el código fuente. En algunos programas, es importante examinar el código detenidamente y usar generadores de perfiles para asegurarse de que se está ejecutando lo más rápidamente posible. En otros programas, no es necesario realizar esta optimización, ya que el código se ejecuta con una velocidad aceptable mientras se escribe. En este artículo se enumeran algunas áreas donde el rendimiento puede verse afectado y sugerencias para mejorar, así como vínculos a temas de rendimiento adicionales. Para más información sobre cómo planear y medir el rendimiento, vea Rendimiento

Conversión boxing y conversión unboxing

Es mejor evitar el uso de tipos de valor en situaciones en las que se debe aplicar la conversión boxing un gran número de veces, por ejemplo, en las clases de colecciones no genéricas como System.Collections.ArrayList. Puede evitar la conversión boxing de tipos de valor mediante el uso de colecciones genéricas como System.Collections.Generic.List<T>. Las conversiones boxing y unboxing son procesos que consumen muchos recursos. Cuando se aplica la conversión boxing a un tipo de valor, se debe crear un objeto completamente nuevo. Esto puede tardar hasta 20 veces más que la asignación de una referencia simple. Cuando se aplica la conversión unboxing, el proceso de conversión puede tardar cuatro veces más que una asignación. Para obtener más información, vea Conversión boxing y unboxing.

Cadenas

Al concatenar un gran número de variables de cadena, por ejemplo en un bucle compacto, use System.Text.StringBuilder en lugar del operador + de C# o los operadores de concatenación de Visual Basic. Para más información, consulte Cómo concatenar varias cadenas y Operadores de concatenación en Visual Basic.

Finalizadores

Los finalizadores vacíos no deben usarse. Cuando una clase contiene un finalizador, se crea una entrada en la cola de finalización. Cuando se llama al finalizador, se invoca al recolector de elementos no utilizados para procesar la cola. Si el finalizador está vacío, simplemente se pierde rendimiento. Para más información, vea Finalizadores y Duración de los objetos: cómo se crean y destruyen.

Otros recursos

Consulta también