测量.Net中的内存使用情况

时间:2010-06-04 04:54:48

标签: .net memory memory-management

我正在尝试获得一个我正在编写的程序(在F#中,虽然我认为这里的答案对于任何CLR语言都是一样的吗?)来报告它自己的内存使用情况(所以我可以了解一下我对机器施加了多大的压力,比较了不同工作负载的大小,并评估了我为节省内存所做的任何优化的效果。)

好消息是,类Process有很多可用的统计数据。 http://msdn.microsoft.com/en-us/library/system.diagnostics.process_members.aspx

但是,有很多不同的内存使用数字。这是试运行中的四个:

Peak paged memory size    13,492,224
Peak virtual memory size  138,661,888
Peak working set          14,188,544
Private memory size       13,492,224

还有其他一些可用。他们之间有什么区别?哪个是“程序在这次运行中使用多少内存才能完成的最佳答案?”在Linux或MacOS上的Mono上,相同的数字是否具有相同的含义?

1 个答案:

答案 0 :(得分:1)

对于试图监控自己的内存使用情况的程序来说,最好的数字是GC.GetTotalMemory。