以兆字节为单位获取物理内存使用量

Zio*_*ioN 3 c# memory monitoring

我正在寻找获得MB中使用的当前数量的物理内存.像任务管理器中的东西

在此输入图像描述

我目前正在使用,PerformanceCounter("Memory", "Available MBytes", true);但它也包括页面文件(我相信),这不是我想要的.此外,我想要获得使用而不是可用内存的选项.

我正在处理的应用程序将监视物理内存使用情况,直到达到所需的阈值.然后它将重启几个Windows服务.

如果你好奇我为什么要开发这样一个程序.我们的一些程序在服务器上有内存泄漏,我们必须重新启动Windows服务以释放内存,直到我们解决所有内存泄漏,我正在使这个应用程序帮助保持服务器的运行和响应.

Fur*_*dar 5

使用PerformanceCounter类,您可以获得PF Usage详细信息:

PerformanceCounter pageCounter = new PerformanceCounter
            ("Paging File", "% Usage", "_Total", machineName);
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到所有类别信息,Process Object.

添加,您还可以使用以下方式获取可用内存详细信息PerformanceCounter:

PerformanceCounter ramCounter = PerformanceCounter
            ("Memory", "Available MBytes", String.Empty, machineName);
Run Code Online (Sandbox Code Playgroud)

使用PerformanceCounter,NextValue()方法可以获取可用的内存MB,稍后您可以将其与值进行比较以停止所需的Windows服务.

if (ramCounter.NextValue() > thresholdValue)
{
    // ... Stop Desired Services
}
Run Code Online (Sandbox Code Playgroud)

参考:简单的性能计数器应用程序