【发布时间】:2010-09-07 01:29:57
【问题描述】:
我正在尝试找出我自己的 .Net 服务器进程正在使用多少内存(用于监控和记录目的)。
我正在使用:
Process.GetCurrentProcess().PrivateMemorySize64
但是,Process 对象有几个不同的属性,可以让我读取使用的内存空间: 分页、非分页、分页系统、非分页系统、私有、虚拟、工作集
然后是“峰值”:我猜它只是存储这些最后一个所取的最大值。
阅读每个属性的 MSDN 定义对我来说并没有太大帮助。我不得不承认,我对内存管理方式(就分页和虚拟而言)的了解非常有限。
所以我的问题显然是“我应该使用哪一个?”,而我知道答案是“视情况而定”。
这个进程基本上会保存一堆列表来记忆正在发生的事情,而其他进程与之通信并查询它的东西。我预计将在其中运行的服务器需要大量 RAM,因此我会随着时间的推移查询这些数据,以便与它保存在其中的列表的大小相比能够估计 RAM 需求。
那么...我应该使用哪一个?为什么?
【问题讨论】:
标签: c# .net memory process diagnostics