我正在尝试获得一个我正在编写的程序(在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 回答
对于试图监控自己的内存使用情况的程序来说,最好的数字是GC.GetTotalMemory .