Édition communautaire Visual Studio 2017
J'essaie de comprendre/utiliser l'utilisation de la mémoire du Performance Profiler dans ce que je ressens comme une fuite de mémoire dans mon application (MVVM avec des contrôles personnalisés). Trois instantanés ont été pris:
J'ai ensuite comparé l'instantané n ° 3 à l'instantané n ° 1. Dans le tableau résultant, j'ai imposé un filtre de "NewProgressNoteView". Ce qui suit est le résultat de l'expansion de l'instance de Doctor_Desk.Views.NewProgressNoteView supérieure. Il convient de noter "[Cycle détecté]" qui semble suspect, mais je ne sais pas ce que cela signifie exactement ou comment utiliser ces informations pour corriger la ou les fuites de mémoire? Que dois-je faire ensuite?
Toute aide sera très appréciée.
TIA.
Qu'est-ce que [Cycle détecté] lors de l'affichage de la mémoire gérée?
Lorsque vous affichez Instantanés du tas dans les outils de diagnostic de Visual Studios, vous avez:
La fenêtre de type d'objet qui montre les objets conservés en mémoire.
Lorsque vous sélectionnez un type d'objet particulier, vous pouvez accéder à:
Ces deux onglets sont des vues de référence qui vous aident à tracer les références parent et enfant d'un objet présentées via un menu arborescent.
Cycle détecté signifie simplement que l'analyseur de mémoire a trouvé la référence parent ou enfant directement ou indirectement en référence à l'objet sélectionné. Ainsi, plutôt que d'afficher une trace d'arborescence circulaire, il ajoute une balise détectée de cycle.
Ce n'est pas nécessairement une mauvaise chose ou votre problème racine.
Pour plus d'informations sur l'analyse de la mémoire et une explication détaillée des vues de référence, consultez cet article msdn: https://msdn.Microsoft.com/en-us/library/dn342825.aspx#Analyze%20memory%20use =