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 obtener más información, vea How to concatenate multiple strings and Concatenation Operators in Visual Basic.

Finalizadores

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

Otros recursos

Consulta también