我正在寻找获取当前使用的物理内存量(以 MB 为单位)。类似于任务管理器中的东西
我目前正在使用 PerformanceCounter("Memory", "Available MBytes", true);
但它还包括页面文件(我相信),这不是我想要的。此外,我想要获得已用内存而不是可用内存的选项。
我正在处理的应用程序将监视物理内存使用情况,直到达到所需的阈值。然后它会重启一些windows服务。
如果你好奇我为什么要开发这样一个程序。我们的一些程序在服务器上有内存泄漏,我们必须重新启动 Windows 服务以释放内存,直到我们解决所有内存泄漏,我正在制作此应用程序以帮助保持服务器运行和响应。
最佳答案
使用 PerformanceCounter class ,您可以获得PF使用详细信息:
PerformanceCounter pageCounter = new PerformanceCounter
("Paging File", "% Usage", "_Total", machineName);
您可以在这里找到所有类别信息,Process Object .
已添加,您还可以使用 PerformanceCounter
获取可用内存详细信息:
PerformanceCounter ramCounter = PerformanceCounter
("Memory", "Available MBytes", String.Empty, machineName);
使用 PerformanceCounter
、NextValue()
方法,您可以获得 可用内存 值,单位为 MB
,稍后您可以将其与阈值 值进行比较以停止所需的Windows 服务。
if (ramCounter.NextValue() > thresholdValue)
{
// ... Stop Desired Services
}
关于c# - 获取以兆字节为单位的物理内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453560/