可以在C#.NET中获取系统可用内存的大小?如果是,怎么?
Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory
右键单击您的项目,添加参考,选择Microsoft.VisualBasic
.。
eggheadcafe
您需要添加对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();
}
}
}
输出:
局部空间=4033036thouttal物理内存=2095172
局部虚拟内存=1933904
可用的虚拟内存=116280
var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes");
var memory = performance.NextValue();
参考http://www.dotnetspider.com/resources/4612-find-memory-usage-usage-cpu-usage.aspx
这里是使用GarbageCollector的选择,因此无需安装其他软件包:
var gcMemoryInfo = GC.GetGCMemoryInfo();
var installedMemoryKb = gcMemoryInfo.TotalAvailableMemoryBytes / 1024;
var usedMemoryKb = GC.GetTotalMemory(true) / 1024;
var availableMemoryKb = installedMemoryKb - usedMemoryKb;