Вы не указали, используете ли вы управляемый или неуправляемый код. В последнем случае вы можете использовать объект PerformanceCounter и инициализировать его следующим образом.
Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
PerformanceCounter pc = new PerformanceCounter();
pc.CategoryName = "Process";
pc.CounterName = "Working Set - Private";
pc.InstanceName = currentProcess.ProcessName;
var myProcessMemoryUsage = (long)pc.NextValue();
В качестве примера приведенный выше код извлекает информацию счетчика производительности частного рабочего набора для текущего процесса.
PerformanceCounter pcRam = new PerformanceCounter();
pcRam.CategoryName = "Memory";
pcRam.CounterName = "Available MBytes";
int mem = (int)pcRam.NextValue();
Этот счетчик покажет вам объем оперативной памяти, доступной на машине, в мегабайтах.
Вы можете посмотреть все счетчики производительности в самом Performance Monitor. Вы должны увидеть как категории, так и имя счетчика.