读书人

关于GC.GetTotalMemory解决思路

发布时间: 2012-05-09 12:13:59 作者: rapoo

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

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

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

探讨

谢谢楼上几位高手。

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

读书人网 >C#

热点推荐