C#获取内存使用率,单位MB
时间: 2023-08-10 13:39:39 浏览: 61
可以使用System.Diagnostics命名空间中的PerformanceCounter类获取内存使用率,单位为MB。
获取内存使用率的代码示例:
```
using System.Diagnostics;
PerformanceCounter memCounter;
memCounter = new PerformanceCounter("Memory", "Available MBytes");
// 获取可用内存大小
float availableMemory = memCounter.NextValue();
// 获取内存使用率
float memUsage = 100 - (availableMemory / new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory) * 100;
```
上述代码中,首先获取了可用内存大小,然后计算出内存使用率。需要注意的是,内存使用率的计算方式可能因操作系统不同而有所不同,上述代码仅适用于Windows操作系统。
相关问题
c#根据进程id获取内存使用率
可以使用 `System.Diagnostics` 命名空间下的 `Process` 类来获取进程的内存使用率。
以下是一个示例代码,通过进程Id获取当前进程的内存使用率:
```csharp
using System.Diagnostics;
Process process = Process.GetProcessById(processId);
float memoryUsage = process.WorkingSet64 / (float)(1024 * 1024); // 单位为MB
float memoryUsageRate = process.WorkingSet64 / (float)process.MaxWorkingSet * 100; // 内存使用率,单位为%
```
其中 `processId` 是要获取内存使用率的进程的 Id。
我们可以通过 `process.WorkingSet64` 获取进程当前使用的物理内存大小,再通过 `process.MaxWorkingSet` 获取进程最大可使用的物理内存大小,从而计算出内存使用率。
C# 获取系统内存和CPU使用率
获取系统内存使用率的代码如下:
```csharp
using System;
using System.Diagnostics;
namespace MemoryUsageDemo
{
class Program
{
static void Main(string[] args)
{
PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");
Console.WriteLine("Available memory: {0} MB", ramCounter.NextValue());
Console.ReadKey();
}
}
}
```
获取系统 CPU 使用率的代码如下:
```csharp
using System;
using System.Diagnostics;
namespace CpuUsageDemo
{
class Program
{
static void Main(string[] args)
{
PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
Console.WriteLine("CPU usage: {0}%", cpuCounter.NextValue());
Console.ReadKey();
}
}
}
```
注意:这些代码需要引用 System.Diagnostics 命名空间。