Compartir a través de


Reglas de rendimiento de uso de .NET Framework

Las reglas de rendimiento de una categoría de uso de .NET Framework identifican métodos concretos que se pueden optimizar y también más modelos de uso general, como la recolección de elementos no utilizados y la contención del bloqueo, que se pueden investigar en relación con los problemas de rendimiento.

DA0001: Utilizar StringBuilder para las concatenaciones

Las llamadas a String.Concat(String, String) son una proporción significativa de la generación de perfiles.Consider la opción de usar la clase StringBuilder para construir cadenas a partir de varios segmentos.

DA0005: Colecciones GC2 frecuentes

Se está recuperando un gran número de objetos de memoria de .NET en la recolección de elementos no utilizados de la generación 2.Si sobreviven a la colección de generación 1 demasiados objetos efímeros, el costo de administración de memoria se puede volver excesivo.

DA0006: Reemplazar Equals() para tipos de valor

Las llamadas al método Equals o a los operadores de igualdad de un tipo de valor público constituyen una proporción considerable de los datos de generación de perfiles.Puede implementar un método más eficaz.

DA0007: Evite utilizar excepciones para el flujo de control

Se llamó a una alta tasa de controladores de excepciones de .NET Framework en los datos de generación de perfiles.Puede utilizar otra lógica de flujo de control para reducir el número de excepciones que se producen.

DA0010: GetHashCode consume muchos recursos

Las llamadas al método GetHashCode del tipo constituyen una proporción considerable de los datos de generación de perfiles o el método GetHashCode asigna memoria.Reduzca la complejidad del método.

DA0011: CompareTo consume muchos recursos

El método CompareTo del tipo consume muchos recursos o el método asigna memoria.Reduzca la complejidad del método CompareTo.

DA0012: Cantidad significativa de reflexión

Las llamadas a métodos System.Reflection como InvokeMember y GetMember o a los métodos de tipo como InvokeMember son una proporción significativa de la generación de perfiles.Puede sustituir estos métodos por un enlace en tiempo de compilación a los métodos de ensamblados dependientes.

DA0013: Uso alto de String.Split o String.Substring

Las llamadas a métodos String.Split o Substring son una parte significativa de la generación de perfiles.Considere el uso de IndexOf o IndexOfAny si está comprobando la existencia de una subcadena en una cadena.

DA0018: Una aplicación de 32 bits se está ejecutando en límites de memoria administrados del proceso

Los datos del sistema recopilados durante la generación de perfiles indican que los montones de memoria de .NET Framework se aproximaron al tamaño máximo que los montones administrados pueden alcanzar en un proceso de 32 bits.Puede volver a generar los perfiles mediante el método de generación de perfiles de memoria de .NET y optimizando el uso de recursos administrados por parte de la aplicación.

DA0021: Alta frecuencia de recolección de elementos no utilizados de gen 1

Se está recuperando un gran número de objetos de memoria de .NET en la recolección de elementos no utilizados de la generación 1.Si sobreviven a la colección de generación 0 demasiados objetos efímeros, el costo de administración de memoria se puede volver excesivo.

DA0022: Alta frecuencia de recolección de elementos no utilizados de gen 2

Se está recuperando un gran número de objetos de memoria de .NET en la recolección de elementos no utilizados de la generación 2.Si sobreviven a la colección de generación 1 demasiados objetos efímeros, el costo de administración de memoria se puede volver excesivo.Esta regla se desencadena cuando la tasa de contenciones del bloqueo supera el valor umbral superior de DA0005 de la regla.

DA0024: Tiempo elevado de CPU de GC

Los datos de rendimiento del sistema recopilados durante la generación de perfiles indican que la cantidad de tiempo dedicada a la recolección de elementos no utilizados es considerable en comparación al tiempo de procesamiento total de la aplicación.

DA0024: Tiempo excesivo de CPU de GC

Los datos de rendimiento del sistema recopilados durante la generación de perfiles indican que la cantidad de tiempo dedicada a la recolección de elementos no utilizados es excesivamente alta en comparación con el tiempo de procesamiento total de la aplicación.Esta regla se desencadena cuando la cantidad de tiempo empleado en la recolección de elementos no utilizados supera el valor umbral máximo de la regla DA0023.

DA0038: Tasa alta de contenciones de bloqueo

Los datos de rendimiento del sistema recopilados con los datos de generación de perfiles indican que se produjo una tasa considerablemente alta de contenciones de bloqueo durante la ejecución de la aplicación.Puede volver a generar los perfiles mediante el método de generación de perfiles de simultaneidad para detectar la causa de las contenciones.

DA0039: Tasa muy alta de contenciones de bloqueo

Los datos de rendimiento del sistema recopilados con los datos de generación de perfiles indican que se produjo una tasa excesivamente alta de contenciones de bloqueo durante la ejecución de la aplicación.Puede volver a generar los perfiles mediante el método de generación de perfiles de simultaneidad para detectar la causa de las contenciones.Esta regla se desencadena cuando la tasa de contenciones del bloqueo supera el valor umbral superior de DA0038 de la regla.