Visual Studio 2017コミュニティエディション
私はアプリケーション(カスタムコントロールを備えたMVVM)のメモリリークと思われるもので、パフォーマンスプロファイラのメモリ使用量を理解/使用しようとしています。 3つのスナップショットが作成されました。
次に、スナップショット#3とスナップショット#1を比較しました。結果のテーブルでは、「NewProgressNoteView」のフィルターを適用しました。以下は、トップDoctor_Desk.Views.NewProgressNoteViewのインスタンスを展開した結果です。注目すべきは「[Cycle Detected]」で、疑わしいと感じますが、正確に何を意味するのか、またはこの情報を使用してメモリリークを修正する方法がわかりませんか?次に何をしますか?
どんな助けでも大歓迎です。
TIA。
マネージメモリを表示する場合の[サイクルの検出]とは何ですか?
Visual Studioの診断ツール内でヒープスナップショットを表示する場合:
メモリに保持されているオブジェクトを表示するオブジェクトタイプウィンドウ。
特定のオブジェクトタイプを選択すると、以下にアクセスできます。
これらのタブは両方とも参照ビューであり、展開ツリーメニューを介して表示されるオブジェクトの親および子参照をトレースするのに役立ちます。
Cycle Detectedは、メモリアナライザーが、選択したオブジェクトに直接または間接的に参照する親または子参照を検出したことを意味します。そのため、循環ツリービュートレースを表示するのではなく、サイクル検出タグを追加します。
これは必ずしも悪いことでも、根本的な問題でもありません。
メモリの分析とリファレンスビューの詳細な説明については、msdnの記事をご覧ください。 https://msdn.Microsoft.com/en-us/library/dn342825.aspx#Analyze%20memory%20use =