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

我试图获得一个我正在编写的程序(在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上,相同的数字具有相同的含义吗?


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

链接地址: http://www.djcxy.com/p/80161.html

上一篇: Measuring memory usage in .Net

下一篇: peak memory measurement of long running process in linux