You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中获取Visual Studio显示的进程总内存使用量?

在C#中获取与Visual Studio一致的进程内存使用量

你遇到的问题是因为Process.GetCurrentProcess().WorkingSet64获取的是进程工作集,包含了和其他进程共享的内存(比如系统DLL),而Visual Studio悬停显示的通常是私有工作集——也就是进程独占的物理内存,不包含共享部分,所以数值会更大。

要获取和VS显示一致的数值,你需要根据VS实际显示的指标选择对应的Process属性:

1. 获取私有工作集(VS最常显示的指标)

使用PrivateMemorySize64属性,它返回进程独占的物理内存大小:

using System.Diagnostics;

var process = Process.GetCurrentProcess();
long privateMemMB = process.PrivateMemorySize64 / 1024 / 1024;
Console.WriteLine($"私有工作集:{privateMemMB} MB");

2. 获取提交内存大小(若VS显示的是提交值)

如果VS显示的是提交内存(进程向系统申请的虚拟内存总大小),使用VirtualMemorySize64:

long virtualMemMB = process.VirtualMemorySize64 / 1024 / 1024;
Console.WriteLine($"提交内存大小:{virtualMemMB} MB");

关键属性区别

  • WorkingSet64:进程当前加载到物理内存的总页面,包含共享资源,数值通常偏小。
  • PrivateMemorySize64:进程独占的物理内存,对应VS默认显示的“私有工作集”。
  • VirtualMemorySize64:进程已提交的虚拟内存总量,包含未实际使用的部分。

内容的提问来源于stack exchange,提问作者SValley_Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:06:32