How to get the size of available system memory?
From EggHeadCafe after googling for 'c# system memory'
You will need to add a reference to 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();
}
}
}
Output:
Total Space = 4033036
Total Physical Memory = 2095172
Total Virtual Memory = 1933904
Available Virtual Memory = 116280
This answer is based on Hans Passant's. The required property is AvailablePhysicalMemory actually. and it (and TotalPhysicalMemory and others) are instance variables, so it should be
new ComputerInfo().AvailablePhysicalMemory
It works in C#, but I wonder why this page says that for C#, "This language is not supported or no code example is available."
Use Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory
.
Right-click your project, Add Reference, select Microsoft.VisualBasic
.