c#在net6根据进程id获取每秒内存使用率
时间: 2024-02-03 07:13:25 浏览: 52
可以使用 `System.Diagnostics` 命名空间下的 `Process` 类来获取进程的信息,包括内存使用情况。具体地,可以使用 `Process.WorkingSet64` 属性获取进程当前使用的内存大小,然后结合前一秒的内存使用大小计算出内存使用率。
以下是一个示例代码:
```csharp
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
int processId = 1234; // 进程 ID
var process = Process.GetProcessById(processId);
long prevMemory = process.WorkingSet64; // 上一秒内存使用大小
while (true)
{
long currentMemory = process.WorkingSet64; // 当前内存使用大小
double usageRate = (currentMemory - prevMemory) / (double)prevMemory * 100;
Console.WriteLine($"Memory usage rate: {usageRate:F2}%");
prevMemory = currentMemory;
System.Threading.Thread.Sleep(1000); // 等待 1 秒
}
}
}
```
其中 `prevMemory` 变量保存了上一秒的内存使用大小,每秒钟计算一次内存使用率并输出。注意,这里使用了 `Thread.Sleep` 方法来让程序等待 1 秒,以保证每秒钟只计算一次。
阅读全文