c#在core6获取某个进程的内存使用率
时间: 2024-02-03 10:15:40 浏览: 140
获取指定进程的内存和cpu使用率
4星 · 用户满意度95%
你可以使用 `System.Diagnostics` 命名空间提供的 `Process` 类来获取某个进程的内存使用率。具体步骤如下:
1. 引用命名空间:`using System.Diagnostics;`
2. 创建 `Process` 对象并指定要获取内存使用率的进程 ID。
3. 调用 `Process` 对象的 `WorkingSet64` 属性获取进程当前工作集的大小。
4. 调用 `Process` 对象的 `PrivateMemorySize64` 属性获取进程使用的专用内存大小。
5. 计算内存使用率:使用工作集大小除以系统内存总量,或者使用专用内存大小除以进程的虚拟内存大小。
以下是获取内存使用率的示例代码:
```csharp
Process process = Process.GetProcessById(processId);
long workingSet = process.WorkingSet64;
long privateMemorySize = process.PrivateMemorySize64;
long systemMemorySize = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
// 计算内存使用率
double workingSetUsage = (double)workingSet / systemMemorySize * 100.0;
double privateMemoryUsage = (double)privateMemorySize / process.VirtualMemorySize64 * 100.0;
Console.WriteLine("Working Set Usage: {0:P2}", workingSetUsage);
Console.WriteLine("Private Memory Usage: {0:P2}", privateMemoryUsage);
```
注意,这里使用了 `Microsoft.VisualBasic.Devices.ComputerInfo` 类获取系统内存总量,需要在项目中引用 `Microsoft.VisualBasic` 程序集。
阅读全文