找出对象在.NET中使用多少内存的最简单方法是什么?

时间:2020-03-06 14:56:49  来源:igfitidea点击:

找出对象在.NET中使用多少内存的最简单方法是什么?

最好不必诉诸第三方工具。 Marshal.SizeOf或者sizeof运算符看起来很有用,但仅适用于有限范围的类型。

一些相关的帖子:

  • .NET中的对象内存分析
  • .NET中的空数组是否使用任何空间?

解决方案

在此处提问和回答:确定一个类使用多少内存?

快速摘要是,如果我们不想使用工具,则需要使用.NET Profiling API

Profiling API的功能惊人地强大,但是我不认为它会在任何想象中都算是"简单"的,因此,我强烈建议我们使用内存分析工具,其中有一些不错的免费工具,而有些则不行,过于昂贵的商业广告(尤其是JetBrains dotTrace)确实很棒。

我们还可以执行以下操作:

int startMem = GC.GetTotalMemory(true);
YourClass c = new YourClass();
int endMem = GC.GetTotalMemory(true);
int usedMeme = endMem - startMem;