¿Cómo puedo obtener la RAM o la memoria disponible que utiliza la aplicación?Cómo obtener memoria disponible o utilizada en C#
Respuesta
Deberías echar un vistazo a la clase System.Diagnostics.Process
.
System.Environment tiene WorkingSet. Si desea una gran cantidad de detalles, hay System.Diagnostics.PerformanceCounter, pero le costará un poco más configurarlo.
Se puede utilizar:
Process proc = Process.GetCurrentProcess();
para que el proceso y el uso actual:
proc.PrivateMemorySize64;
Para obtener el uso de la memoria privada. Para obtener más información, consulte this link.
Probablemente se debe tener en cuenta que una llamada a GetCurrentProcess asignará una gran cantidad de recursos. Llame a Dispose sobre el proceso devuelto cuando termine, o envuelva todo el código en un ámbito de "uso". –
Espacio de nombres: System.Diagnostics Assembly: System (en System.dll) –
También me gustaría añadir que la propiedad PrivateMemorySize64 (+ otras propiedades) no se actualiza automáticamente hasta que se llame a Refresh(). (Se menciona en la página en el enlace de arriba). – ScottRhee
Es posible que desee comprobar el método GC.GetTotalMemory.
Recupera la cantidad de bytes que el recolector de basura asigna actualmente.
Sin embargo, solo en montones administrados. La respuesta de Arkain debería dar montones tanto nativos como administrados. – Yaur
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 como valor 0 se necesita llamar 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();
- 1. ¿Cómo obtener memoria disponible C++/g ++?
- 2. Cómo obtener la memoria utilizada por un programa Delphi
- 3. ¿Cómo obtener la memoria total en bytes utilizada por OpenGL en C++?
- 4. ¿Cómo obtener el tamaño de la memoria del sistema disponible?
- 5. ¿Cómo encontrar memoria disponible en iPhone programáticamente?
- 6. Borrado de la memoria utilizada por rpy2
- 7. ¿Memoria de sistema disponible y usada en Python?
- 8. Cómo implementar la memoria caché utilizada más recientemente
- 9. r - ¿Cómo borrar la memoria utilizada por rJava?
- 10. javascript para encontrar memoria disponible
- 11. Cómo obtener el uso de memoria en Windows en C++
- 12. Cómo encontrar la memoria utilizada por cualquier objeto
- 13. ¿Cómo fuerzo mi std :: map para desasignar la memoria utilizada?
- 14. Eliminar la memoria de la variable no utilizada en java
- 15. ¿Cómo puedo obtener la memoria física total en C#?
- 16. ¿Cómo determino la memoria del dispositivo disponible en OpenCL?
- 17. ¿Cómo obtengo memoria disponible de mem_malloc de lwIP?
- 18. ¿Cómo obtener espacio de disco total disponible en sistemas Posix?
- 19. Memoria Totalmente utilizada por Java ConcurrentHashMap (en Tomcat)
- 20. Determinación de la memoria de video disponible
- 21. Memoria disponible para la aplicación iPhone OS
- 22. Cómo obtener Microsoft.Web.Services3 disponible para VS2010
- 23. Averiguar cuánta memoria está siendo utilizada por un objeto en C#?
- 24. Cómo obtener una dirección de memoria específica usando C
- 25. ¿Está disponible la versión de webkit utilizada en el navegador de Android?
- 26. línea de comando para obtener la memoria utilizada por el proceso
- 27. MySQL NO usando la memoria disponible
- 28. ¿Preprocesador Objective-C disponible?
- 29. Does Instruments muestra la memoria utilizada por UIWebView?
- 30. ¿Cómo encontrar la memoria utilizada por un objeto en PHP? (sizeof)
Nota: la memoria RAM física actualmente utilizada es el conjunto de trabajo, la memoria asignada cae en bytes privados o compartidos (según el tipo de asignación). – Richard