我正在使用DebugDiag 1.2和perfmon.exe来监控.NET应用程序的内存使用情况。
DebugDiag显示GC Heap Size为35.51MB,而对于同一时刻,perfmon显示#Bytes in all heaps为4.5MB。
为什么这两个值是不同的?它们代表的不是同一件事吗?
发布于 2014-01-18 19:49:57
“所有堆中的字节”表示应用程序当前正在使用的所有.NET对象所使用的内存,其中,GC堆大小实际上是在.NET堆中提交的内存。GC堆大小更大的原因是它包含了被标记为"FREE“的对象所使用的内存。.NET不会立即将标记为空闲并在下一次垃圾回收时释放的所有内存返回给操作系统,因此内存仍被标记为提交,并且仍在.net堆中,但不会被应用程序中的任何内容实际使用。
要对此有更多了解,请访问http://blogs.msdn.com/b/tess/archive/2005/11/25/496973.aspx并在该博客中搜索“免费”一词
https://stackoverflow.com/questions/18570235
复制相似问题