Règles de performance de l'utilisation du .NET Framework

Les règles de performance de l'utilisation du .NET Framework identifient des méthodes spécifiques qui peuvent être optimisées ainsi que des modèles d'utilisation plus généraux, tels que la garbage collection et le conflit de verrou, pour lesquels les problèmes de performances peuvent être étudiés.

DA0001 : Utilisez StringBuilder pour les concaténations

Les appels à String.Concat(String, String) représentent une proportion significative des données de profilage. Utilisez la classe StringBuilder pour construire des chaînes à partir de plusieurs segments.

DA0005 : Collections GC2 fréquentes

Un nombre relativement élevé d'objets mémoire .NET est libéré dans le garbage collection de 2e génération. Si trop d'objets relativement éphémères subsistent de la collection de génération 1, le coût de gestion de la mémoire peut facilement devenir excessif.

DA0006 : Remplacer Equals() pour les types valeur

Les appels à la méthode Equals ou les opérateurs d'égalité d'un type valeur public représentent une proportion significative des données de profilage. Envisagez d'implémenter une méthode plus efficace.

DA0007 : Ne pas utiliser d'exceptions pour le flux de contrôle

Un taux élevé de gestionnaires d'exceptions .NET Framework a été appelé dans les données de profilage. Utilisez une autre logique de flux de contrôle pour réduire le nombre d'exceptions levées.

DA0010 : GetHashCode coûteux

Les appels à la méthode GetHashCode du type représentent une proportion significative des données de profilage ou la méthode GetHashCode alloue de la mémoire. Réduisez la complexité de la méthode.

DA0011 : CompareTo coûteux

La méthode CompareTo du type est coûteuse ou la méthode alloue de la mémoire. Réduisez la complexité de la méthode CompareTo.

DA0012 : Quantité importante de réflexion

Les appels aux méthodes System.Reflection methods such as InvokeMember et GetMember ou aux méthodes Type telles que InvokeMember représentent une proportion significative des données de profilage. Lorsque cela est possible, envisagez de remplacer ces méthodes par une liaison anticipée aux méthodes d'assemblys dépendants.

DA0013 : Utilisation intensive de String.Split/String.Substring

Les appels aux méthodes String.Split or Substring représentent une proportion significative des données de profilage. Utilisez IndexOf ou IndexOfAny si vous testez l'existence d'une sous-chaîne dans une chaîne.

DA0018 : application 32 bits s'exécutant aux limites de la mémoire managée du processus

Les données système collectées pendant l'exécution du profilage indiquent que les tas de mémoire .NET Framework ont approché de la taille maximale autorisée pour les tas managés dans un processus 32 bits. Considérez un nouveau profilage à l'aide de la méthode des profils de mémoire .NET et une optimisation de l'utilisation des ressources managées par l'application.

DA0021 : Taux élevé de garbage collection Gen 1

Un nombre relativement élevé d'objets mémoire .NET est libéré dans le garbage collection de 1e génération. Si trop d'objets relativement éphémères subsistent de la collection de génération 0, le coût de gestion de la mémoire peut facilement devenir excessif.

DA0022 : taux élevé de garbage collection Gen 2

Un nombre élevé d'objets mémoire .NET est libéré dans le garbage collection de 2e génération. Si trop d'objets relativement éphémères subsistent de la collection de génération 1, le coût de gestion de la mémoire peut facilement devenir excessif. Cette règle se déclenche lorsque le taux de conflits de verrou dépasse la valeur de seuil supérieure de la règle DA0005.

DA0023 : temps processeur GC élevé

Les données des performances système collectées pendant le profilage indiquent que le temps passé dans le garbage collection est significatif comparé au temps total de traitement de l'application.

DA0024 : temps processeur GC excessif

Les données des performances système collectées pendant le profilage indiquent que le temps passé dans le garbage collection est excessivement élevé comparé au temps total de traitement de l'application. Cette règle se déclenche lorsque la durée de l'opération garbage collection dépasse la valeur de seuil supérieure de la règle DA0023.

DA0038 : taux élevé de conflits de verrouillage

Les données des performances système collectées avec les données de profilage indiquent qu'un taux considérablement élevé de conflits de verrouillage a été relevé pendant l'exécution de l'application. Envisagez un autre profilage à l'aide de la méthode de profilage d'accès concurrentiel pour découvrir la cause des conflits.

DA0039 : taux très élevé de conflits de verrouillage

Les données des performances système collectées avec les données de profilage indiquent qu'un taux excessivement élevé de conflits de verrouillage a été relevé pendant l'exécution de l'application. Envisagez un autre profilage à l'aide de la méthode de profilage d'accès concurrentiel pour découvrir la cause des conflits. Cette règle se déclenche lorsque le taux de conflits de verrou dépasse la valeur de seuil supérieure de la règle DA0038.