Sugerencias para mejorar el rendimiento de .NET

 

El término rendimiento suele hacer referencia a la velocidad de ejecución de un programa.En ocasiones, es posible incrementar 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 con detenimiento y usar generadores de perfiles para asegurarse de que se está ejecutando a la mayor velocidad posible.En otros programas no es necesario realizar esta optimización, ya que el código se ejecuta a una velocidad aceptable según se escribe.En este artículo se enumeran algunas áreas comunes donde el rendimiento puede verse afectado y sugerencias para mejorarlo, así como vínculos a temas adicionales de rendimiento.Para obtener más información sobre cómo planear y medir el rendimiento, vea .NET Framework Performance

Conversión boxing y conversión unboxing

Es conveniente evitar el uso de tipos de valor en situaciones donde se les debe aplicar la conversión boxing un gran número de veces, por ejemplo en clases de colecciones no genéricas como System.Collections.ArrayList.Para evitar la conversión boxing de los tipos de valor, utilice 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 llevar hasta 20 veces más que una asignación de referencias sencilla.Al aplicar la conversión unboxing, el proceso de conversión puede llevar hasta cuatro veces más que una asignación.Para obtener más información, vea Conversión boxing y unboxing.

Cadenas

Al concatenar un número grande de variables de cadena, por ejemplo en un bucle ajustado, utilice 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 Cómo: Concatenar varias cadenas (Guía de programación de C#) y Operadores de concatenación en Visual Basic.

Destructores

No se deben utilizar destructores vacíos.Cuando una clase contiene un destructor, se crea una entrada en la cola Finalize.Cuando se llama al destructor, se invoca al recolector de elementos no utilizados para procesar la cola.Si el destructor está vacío, simplemente se produce una pérdida de rendimiento.Para obtener más información, vea Destructores (Guía de programación de C#) y Duración de los objetos: cómo se crean y destruyen (Visual Basic).

Otros recursos

Ver también

.NET Framework Performance
Programar los conceptos
Guía de programación en Visual Basic
Guía de programación de C#