如何获得可用系统内存的大小?
是否有可能在C#.NET中获得系统可用内存的大小? 如果是的话如何?
使用Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory
。
用鼠标右键单击您的项目,添加引用,selectMicrosoft.VisualBasic
。
这个答案是基于Hans Passant的。 实际上需要的属性是AvailablePhysicalMemory。 它(和TotalPhysicalMemory等)是实例variables,所以它应该是
new ComputerInfo().AvailablePhysicalMemory
它在C#中工作,但我想知道为什么这个页面说C#,“这种语言不支持或没有代码示例是可用的。
从EggHeadCafe谷歌search'C#系统内存'
您将需要添加对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(); } } }
输出:
总空间= 4033036
总物理内存= 2095172
总虚拟内存= 1933904
可用虚拟内存= 116280
使用通过System.Diagnostics访问的性能计数器将是一个选项。
请参阅http://www.dotnetspider.com/resources/4612-Find-Memory-usage-CPU-usage.aspx
希望这可以帮助!
var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes"); var memory = performance.NextValue();