Cómo obtener memoria disponible o utilizada en C#
memory-management (6)
Debería echar un vistazo a la clase System.Diagnostics.Process
.
¿Cómo puedo obtener la memoria RAM o memoria disponible que usa la aplicación?
Es posible que desee comprobar el método GC.GetTotalMemory .
Recupera la cantidad de bytes que actualmente se piensa que asigna el recolector de basura.
Mire here para más detalles.
private PerformanceCounter cpuCounter;
private PerformanceCounter ramCounter;
public Form1()
{
InitializeComponent();
InitialiseCPUCounter();
InitializeRAMCounter();
updateTimer.Start();
}
private void updateTimer_Tick(object sender, EventArgs e)
{
this.textBox1.Text = "CPU Usage: " +
Convert.ToInt32(cpuCounter.NextValue()).ToString() +
"%";
this.textBox2.Text = Convert.ToInt32(ramCounter.NextValue()).ToString()+"Mb";
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void InitialiseCPUCounter()
{
cpuCounter = new PerformanceCounter(
"Processor",
"% Processor Time",
"_Total",
true
);
}
private void InitializeRAMCounter()
{
ramCounter = new PerformanceCounter("Memory", "Available MBytes", true);
}
Si obtiene el valor como 0, necesita llamar a NextValue()
dos veces. Luego da el valor real del uso de la CPU. Ver más detalles here .
Para el sistema completo, puede agregar Microsoft.VisualBasic Framework como referencia;
Console.WriteLine("You have {0} bytes of RAM",
new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory);
Console.ReadLine();
Puedes usar:
Process proc = Process.GetCurrentProcess();
Para obtener el proceso actual y el uso:
proc.PrivateMemorySize64;
Para obtener el uso de la memoria privada. Para más información mira este enlace .
System.Environment tiene WorkingSet . Si desea una gran cantidad de detalles, hay System.Diagnostics.PerformanceCounter , pero le costará un poco más configurarlo.