Je souhaite vérifier le problème de fuite de mémoire dans mon service. J'ai essayé de suivre l'ensemble de compteurs perfmon.
J'ai fait référence ci-dessus à partir de ici
Également appelé ensemble suivant:
J'ai fait référence ci-dessus à partir de ici
Existe-t-il des paramètres/critères ou tout autre meilleur moyen d'identifier le compteur de perfmon pour les fuites de mémoire?
Quelqu'un peut-il me suggérer un ensemble de compteurs pour vérifier la fuite de mémoire? Ou au-dessus des ensembles couvre les fuites de mémoire?
Pour détecter une fuite de mémoire à l'aide de l'Analyseur de performances, surveillez ces compteurs:
D'après mon expérience, c'est exact.
Je vous renvoie également à ce blog Microsoft Advanced Debugging de Tess, un employé de Microsoft. Qui suggère les compteurs suivants. J'ai trouvé que ce qui précède est plus que suffisant pour indiquer qu'une fuite de mémoire est présente, mais j'espère que les instructions de Tess pourraient fournir un aperçu plus approfondi du problème.
Débogage des démos - Examen de la mémoire
Il existe de meilleurs outils disponibles pour faciliter le test des fuites de mémoire, tels que RedGate ANTS Memory Profiler et JetBrains dotMemory Profiler .
Cependant, si vous souhaitez utiliser des compteurs de performances, cet article explique comment utiliser les compteurs de performances pour tester les fuites de mémoire.
Gardez à l'esprit que Garbage Collection ne libère pas de mémoire immédiatement après la suppression d'une instance. Il a été optimisé pour déclencher et libérer de la mémoire uniquement en cas de stress mémoire. Donc, si vous souhaitez tester les fuites de mémoire, vous devez exécuter le nettoyage de la mémoire manuellement avant de prendre des lectures de compteur.
GC.Collect();
GC.WaitForPendingFinalizers();