为什么GC.GetTotalMemory()和CLR Profiler数字之间存在巨大差异?

azi*_*ziz 5 c# memory size profiler object

我有一个对象,我需要为IIS中的Web应用程序缓存其中的几个,所以我正在分析每个实例使用多少内存.

我写了一个小的exe,我GC.GetTotalMemory(true)在构造之前和之后调用,差异大约是335k,但如果分析CLR profiler它显示我22 MB的内存用于没有意义的对象.

我在CLR分析器中错误地解释了什么?
我应该在哪里检查分析器以查看单个对象大小?

Nav*_*ani 1

根据MSDN:垃圾收集器不保证收集所有不可访问的内存。

看这里

CLR分析器显示所有分配的内存;

如果使用 GC.GetTotalMemory(false) 结果会怎样?