c# memory-management

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 .