net core根据指定进程获取这个进程每秒占用的内存(MB)
时间: 2023-08-10 21:09:36 浏览: 46
可以使用 System.Diagnostics 命名空间中的 Process 类来实现获取进程每秒占用的内存(MB)的功能。具体实现可以参考以下代码示例:
```csharp
using System;
using System.Diagnostics;
public class Program
{
public static void Main(string[] args)
{
// 指定要获取内存占用的进程名称
string processName = "your_process_name";
// 获取指定进程的 ID
int processId = GetProcessId(processName);
if (processId > 0)
{
// 获取指定进程对象
Process process = Process.GetProcessById(processId);
// 获取进程每秒占用的内存(MB)
while (true)
{
Console.WriteLine($"Memory usage: {process.WorkingSet64 / 1024 / 1024} MB");
System.Threading.Thread.Sleep(1000);
}
}
else
{
Console.WriteLine($"Process {processName} not found!");
}
}
// 根据进程名称获取进程 ID
private static int GetProcessId(string processName)
{
Process[] processes = Process.GetProcessesByName(processName);
if (processes.Length > 0)
{
return processes[0].Id;
}
return 0;
}
}
```
需要注意的是,进程的内存占用在不同的时间点可能会有所变化,因此上述代码中会每秒钟输出一次当前进程的内存占用情况。同时,由于 WorkingSet64 属性返回的是字节数,因此需要将其转换为 MB 才能更直观地表示内存占用情况。