【问题标题】:Measuring memory usage in .Net测量 .Net 中的内存使用情况
【发布时间】:2011-02-27 15:12:17
【问题描述】:

我正在尝试获取我正在编写的程序(在 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 上是否具有相同的含义?

【问题讨论】:

    标签: .net memory memory-management


    【解决方案1】:

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

    【讨论】:

      最近更新 更多