Zio*_*ioN 3 c# memory monitoring
我正在寻找获得MB中使用的当前数量的物理内存.像任务管理器中的东西

我目前正在使用,PerformanceCounter("Memory", "Available MBytes", true);但它也包括页面文件(我相信),这不是我想要的.此外,我想要获得使用而不是可用内存的选项.
我正在处理的应用程序将监视物理内存使用情况,直到达到所需的阈值.然后它将重启几个Windows服务.
如果你好奇我为什么要开发这样一个程序.我们的一些程序在服务器上有内存泄漏,我们必须重新启动Windows服务以释放内存,直到我们解决所有内存泄漏,我正在使这个应用程序帮助保持服务器的运行和响应.
使用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)
参考:简单的性能计数器应用程序