我正在尝试找到一种方法来确定运行时给定类在 .NET 中使用了多少内存。使用 Marshal.SizeOf() 已经过时了,因为它只适用于值类型。有没有办法准确检查一个类使用了多少内存?

有帮助吗?

解决方案

我最近才开始研究这类事情,但我发现内存分析器可以提供有关应用程序中对象实例的非常详细的信息。

这里有一些值得尝试的:

其他提示

我同意内存分析器是获取所需信息的最简单方法。除了前面提到的两个之外,我推荐 JetBrains 点跟踪, ,它既是性能分析器又是内存分析器。

如果您想自己动手,并且愿意深入了解 CLR 的内部,您可以使用 .NET 分析 API, ,这是一个非托管 API(正如微软所说):“使探索者可以通过通用语言运行时(CLR)监视程序的执行。”它并不是偶然使用的,但确实具有大量功能。

只需链接到相关的SO问题:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top