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