c# .net memory diagnostics

c# - ¿Cómo obtener el tamaño de la memoria del sistema disponible?



.net memory (5)

¿Es posible obtener el tamaño del sistema de memoria disponible en C # .NET? Si es así, ¿cómo?


De EggHeadCafe después de googlear para ''c # memoria del sistema''

Deberá agregar una referencia a System.Management

using System; using System.Management; namespace MemInfo { class Program { static void Main(string[] args) { ObjectQuery winQuery = new ObjectQuery("SELECT * FROM Win32_LogicalMemoryConfiguration"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(winQuery); foreach (ManagementObject item in searcher.Get()) { Console.WriteLine("Total Space = " + item["TotalPageFileSpace"]); Console.WriteLine("Total Physical Memory = " + item["TotalPhysicalMemory"]); Console.WriteLine("Total Virtual Memory = " + item["TotalVirtualMemory"]); Console.WriteLine("Available Virtual Memory = " + item["AvailableVirtualMemory"]); } Console.Read(); } } }

Salida:

Espacio total = 4033036

Memoria física total = 2095172

Memoria virtual total = 1933904

Memoria virtual disponible = 116280


Esta respuesta se basa en la de Hans Passant. La propiedad requerida es Available PhysicalMemory en realidad. y (y TotalPhysicalMemory y otros) son variables de instancia, por lo que debe ser

new ComputerInfo().AvailablePhysicalMemory

Funciona en C #, pero me pregunto por qué esta página dice que para C #, "Este idioma no es compatible o no hay ningún ejemplo de código disponible".




var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes"); var memory = performance.NextValue();