我使用Visual Studio拍摄应用程序的内存快照。
我对理解我得到的数据有一些疑问。
捕获内存快照后,我过滤出了我的一个类,例如MyClassPanel。我只在我的xmal文件中使用MyClassPanel。
为什么MyClassPanel的“根目录路径”都是“MyClassPanel [RefCount Handle,Count:1]”? (即,名称相同,但字符串[RefCount Handle末尾]和不同的Count值)是什么意思?在其他类(class)中,我进行了过滤,我看到“通往根的路径”是不同的类(class)名称。 我有24个MyClassPanel(从顶部表中的计数开始)。在底表的“引用计数”列中,当我将它们加起来时,它们就是24。
总是这样吗?我认为“计数”和“引用计数”的含义不同。在这种情况下,它们加起来。这有意义吗? “通往根的路径” View 显示对此类型的引用,以防止被垃圾回收。由于您的类是Xaml页面,因此使该类保持 Activity 状态的引用是Xaml页面的CLR处理程序。这些显示为RefCount句柄。
计数和引用计数确实不同。 Count是实例数,引用数是引用数。因为在您的情况下,每个实例只有一个引用,所以它们加起来是有意义的。
有关更多信息:
https://devblogs.microsoft.com/devops/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production/ https://docs.microsoft.com/visualstudio/profiling/analyze-memory-usage https://docs.microsoft.com/visualstudio/profiling/memory-usage