Compartir a través de


Sugerencias de rendimiento de .NET

El término rendimiento generalmente hace referencia a la velocidad de ejecución de un programa. A veces puede aumentar la velocidad de ejecución siguiendo ciertas reglas básicas en el código fuente. En algunos programas, es importante examinar el código de cerca y usar generadores de perfiles para asegurarse de que se ejecuta lo más rápido posible. En otros programas, no es necesario realizar esta optimización porque el código se ejecuta de forma aceptable a medida que se escribe. En este artículo se enumeran algunas áreas comunes en las que el rendimiento puede sufrir y sugerencias para mejorarlo, así como vínculos a temas de rendimiento adicionales. Para obtener más información sobre el planeamiento y la medición del rendimiento, consulte Rendimiento.

Conversión boxing y conversión unboxing

Es mejor evitar el uso de tipos de valor en situaciones en las que se deben encapsular muchas veces, por ejemplo, en 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 encapsula un tipo de valor, se debe crear un objeto completamente nuevo. Esto puede tardar hasta 20 veces más que una asignación de 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 Boxing y Unboxing.

Cadenas

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

Finalizadores

No se deben usar finalizadores vacíos. Cuando una clase contiene un finalizador, se crea una entrada en la cola Finalizar. Cuando se llama al finalizador, se invoca al recolector de basura 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

Consulte también