日期:2014-05-18  浏览次数:20835 次

关于GC.GetTotalMemory
我用GC.GetTotalMemory(false) 得到程序垃圾回收前的内存占用为3M左右,可是运行程序(不是在VS下调试)后在WINDOWS任务管理器下显示的内存占用为40多M,怎么回事呢?

怎么才能编程得到任务管理器中显示的内存占用量?

------解决方案--------------------
是不会一样,那个方法只是得到托管堆的内存大小,而不是整个程序的内存,要得到整个程序的内存,你只能使用API来获取,有个API函数叫GetProcessMemoryInfo,具体使用方法请查看API手册。
------解决方案--------------------
Process.GetCurrentProcess ().PrivateMemorySize
------解决方案--------------------
探讨

谢谢楼上几位高手。

我想问一下,为什么整个程序的内存会比托管堆内存多出那么多呢?(我的小程序多出来30多兆)
换句话说,程序运行时除了调用托管堆还有什么地方消耗内存?