c#在net6根据进程id获取每秒钟这个进程的内存使用率
时间: 2024-02-03 07:14:08 浏览: 170
可以使用`System.Diagnostics`命名空间下的`Process`类来获取进程相关信息,包括内存使用情况。以下是一个获取进程内存使用率的示例代码:
```csharp
using System;
using System.Diagnostics;
namespace Test
{
class Program
{
static void Main(string[] args)
{
int processId = 1234; // 你要监控的进程ID
Process process = Process.GetProcessById(processId);
while (true)
{
float memoryUsage = (float)process.WorkingSet64 / (1024 * 1024); // 获取进程占用内存大小(单位为MB)
float memoryUsageRate = (float)process.WorkingSet64 / process.VirtualMemorySize64 * 100; // 获取内存使用率
Console.WriteLine($"Memory usage: {memoryUsage:F2} MB");
Console.WriteLine($"Memory usage rate: {memoryUsageRate:F2}%");
System.Threading.Thread.Sleep(1000); // 延时1秒
}
}
}
}
```
上面的代码中,`process.WorkingSet64`获取的是进程实际使用的物理内存大小,`process.VirtualMemorySize64`获取的是进程虚拟内存大小。通过计算这两个值的比例,就可以得到进程的内存使用率。值得注意的是,程序中使用了一个死循环和`Thread.Sleep`来实现每秒钟获取一次内存使用率的功能。
阅读全文