【发布时间】:2023-01-11 11:51:09
【问题描述】:
标签: c# visual-studio xamarin system.diagnostics diagnostic-tools
标签: c# visual-studio xamarin system.diagnostics diagnostic-tools
从文档Analyze memory usage data,我们可以知道:
列的名称取决于您在项目属性中选择的调试模式:.NET、本机或混合(.NET 和本机)。
Objects (Diff)和Allocations (Diff)列显示快照时 .NET 和本机内存中的对象数
采取。Heap Size (Diff)列显示 .NET 和本机堆中的字节数当您拍摄了多个快照时,汇总表的单元格包括行快照和前一个快照之间的值变化。
要分析内存使用情况,请单击打开内存使用情况详细报告的链接之一:
查看当前快照与当前快照之间差异的详细信息 上一个快照,选择箭头左侧的更改链接 (内存使用量增加)。
red arrow表示increase内存使用情况,green arrow表示decrease。因此,绿色箭头表示内存使用量减少。
通常,对于您的应用程序的大多数对象 创建,你可以依赖
the garbage collector到automatically执行必要的内存管理任务。然而,无人管理 资源需要显式清理。最常见的非托管类型 resource 是包装操作系统资源的对象,例如 文件句柄、窗口句柄或网络连接。虽然 垃圾收集器能够跟踪托管对象的生命周期 封装了一个非托管资源,它没有特定的 有关如何清理资源的知识。当你创建一个 封装非托管资源的对象,建议 您提供必要的代码来清理非托管资源 公共Dispose方法。通过提供Dispose方法,您可以启用 你的对象的用户在他们使用时显式地释放它的内存 对象完成。综上所述,我们不能武断地说,只要内存使用率有所下降,就一定意味着Garbage Collection在运行。可能这个时候,
Dispose这个方法就是用来释放内存的。更多信息,您可以查看:Automatic Memory Management和Releasing Memory for Unmanaged Resources。
【讨论】: