如何读取 Visual Studio 中的内存快照
How to read the memory snapshot in Visual Studio
我使用 Visual Studio 拍摄我的应用程序的内存快照。
我对理解我得到的数据有一些疑问。
在捕获内存快照后,我过滤掉了我的 class 之一,比如 MyClassPanel。我只在我的 xmal 文件中使用 MyClassPanel。
为什么 MyClassPanel 的“Paths to Root”都是“MyClassPanel [RefCount Handle, Count:1]”? (即相同的名称但带有字符串 [末尾的 RefCount Handle] 和不同的计数值)这是什么意思?在其他 class 中,我过滤,我看到 'Paths to Root' 是不同的 class 名称。
我有 24 个 MyClassPanel(来自顶部 table 的计数)。在底部的“引用计数”列中 table,当我将它们相加时,它们是 24。
总是这样吗?我认为“计数”和“引用计数”的含义不同。在这种情况下,它们加起来。这有意义吗?
Paths to Root 视图显示了对该类型的引用,防止它被垃圾回收。由于您的 class 是一个 Xaml 页面,因此使 class 保持活动状态的引用是 Xaml 页面的 CLR 处理程序。这些显示为 RefCount Handle。
计数和引用计数确实不一样。 Count是实例数,reference count是引用数。因为您案例中的每个实例只有一个参考,所以它们加起来是有意义的。
更多信息:
我不是 Visual Studio 快照分析器的忠实粉丝。如果在拍摄快照之前未正确执行最终确定,则会出现相当多的并发症。我不确定 Visual Studio 是如何处理的。但是,您提供的快照对我来说也没有多大意义。
我建议您下载 ANTS 内存分析器并进行调查。它有一个合理的试用期。通过使用它,您将能够通过使用它的 'Retention Graph' 查看对每个实例的所有引用。它将专门向您展示哪些实例保留了对您的对象的引用,还将向您展示哪些对象已实现 Dispose 但尚未调用。我想,它会提供更多的支持来找到这个问题的根本原因。
查看下面的页面演练
http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/walkthrough
http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
我使用 Visual Studio 拍摄我的应用程序的内存快照。
我对理解我得到的数据有一些疑问。 在捕获内存快照后,我过滤掉了我的 class 之一,比如 MyClassPanel。我只在我的 xmal 文件中使用 MyClassPanel。
为什么 MyClassPanel 的“Paths to Root”都是“MyClassPanel [RefCount Handle, Count:1]”? (即相同的名称但带有字符串 [末尾的 RefCount Handle] 和不同的计数值)这是什么意思?在其他 class 中,我过滤,我看到 'Paths to Root' 是不同的 class 名称。
我有 24 个 MyClassPanel(来自顶部 table 的计数)。在底部的“引用计数”列中 table,当我将它们相加时,它们是 24。
总是这样吗?我认为“计数”和“引用计数”的含义不同。在这种情况下,它们加起来。这有意义吗?
Paths to Root 视图显示了对该类型的引用,防止它被垃圾回收。由于您的 class 是一个 Xaml 页面,因此使 class 保持活动状态的引用是 Xaml 页面的 CLR 处理程序。这些显示为 RefCount Handle。
计数和引用计数确实不一样。 Count是实例数,reference count是引用数。因为您案例中的每个实例只有一个参考,所以它们加起来是有意义的。
更多信息:
我不是 Visual Studio 快照分析器的忠实粉丝。如果在拍摄快照之前未正确执行最终确定,则会出现相当多的并发症。我不确定 Visual Studio 是如何处理的。但是,您提供的快照对我来说也没有多大意义。
我建议您下载 ANTS 内存分析器并进行调查。它有一个合理的试用期。通过使用它,您将能够通过使用它的 'Retention Graph' 查看对每个实例的所有引用。它将专门向您展示哪些实例保留了对您的对象的引用,还将向您展示哪些对象已实现 Dispose 但尚未调用。我想,它会提供更多的支持来找到这个问题的根本原因。
查看下面的页面演练
http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/walkthrough http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/