c#根据进程id获取每秒内存使用率
时间: 2023-07-29 15:07:21 浏览: 97
可以使用 System.Diagnostics 命名空间中的 Process 类来获取进程的内存使用情况。以下是一个示例代码,可以获取指定进程 ID 的每秒内存使用率:
```csharp
using System;
using System.Diagnostics;
namespace MemoryUsage
{
class Program
{
static void Main(string[] args)
{
int processId = 12345; // 替换为你要监控的进程 ID
PerformanceCounter counter = new PerformanceCounter("Process", "% Processor Time", Process.GetProcessById(processId).ProcessName);
counter.NextValue();
System.Threading.Thread.Sleep(1000);
while (true)
{
float cpuUsage = counter.NextValue();
float memoryUsage = Process.GetProcessById(processId).WorkingSet64 / 1024f / 1024f; // 已使用内存,单位为 MB
Console.WriteLine("CPU Usage: {0}%, Memory Usage: {1} MB", cpuUsage, memoryUsage);
System.Threading.Thread.Sleep(1000);
}
}
}
}
```
在上面的示例代码中,我们使用了 PerformanceCounter 类来获取进程的 CPU 使用率,使用 Process 类的 WorkingSet64 属性来获取进程的已使用内存。在 while 循环中,我们每隔一秒钟打印一次进程的 CPU 和内存使用情况。
阅读全文