c# - 获取以兆字节为单位的物理内存使用情况

标签 c# memory monitoring

我正在寻找获取当前使用的物理内存量(以 MB 为单位)。类似于任务管理器中的东西

enter image description here

我目前正在使用 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);

使用 PerformanceCounterNextValue() 方法,您可以获得 可用内存 值,单位为 MB,稍后您可以将其与阈值 值进行比较以停止所需的Windows 服务

if (ramCounter.NextValue() > thresholdValue)
{
    // ... Stop Desired Services
}

引用:A Simple Performance Counter Application

关于c# - 获取以兆字节为单位的物理内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453560/

相关文章:

ubuntu - Icinga2 正在监控同一个主机

C# 等待 lambda 回调完成

c# - 如何在 C# 中捕获 Windows 应用商店应用程序的窗口内容

c# - 连接的服务组件 Microsoft WCF Web 服务引用提供程序失败。(HRESULT : 0x80131500) the project format is incorrect

python - 如何使用 ctypes 在 python 中创建 int 缓冲区

php - 超出内存大小?

java - Hibernate 事务的内存影响

oracle - 监控所有索引

c# - 如何将并发包转换为列表?

asp.net - 如何确定 ASP.NET 缓存的字节大小?