找出对象在.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;