How to get the size of available system memory?

后端 未结 5 925
遥遥无期
遥遥无期 2020-12-02 15:27

Is it possible to get the size of system available memory in C#.NET? if yes how?

相关标签:
5条回答
  • 2020-12-02 15:46

    Using the performance counters accessible via System.Diagnostics will be one option.

    Refer http://www.dotnetspider.com/resources/4612-Find-Memory-usage-CPU-usage.aspx

    Hope this helps!

    0 讨论(0)
  • 2020-12-02 15:49

    Use Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory.

    Right-click your project, Add Reference, select Microsoft.VisualBasic.

    0 讨论(0)
  • 2020-12-02 15:54
    var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes");
    var memory = performance.NextValue();
    
    0 讨论(0)
  • 2020-12-02 16:11

    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."

    0 讨论(0)
  • 2020-12-02 16:12

    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

    0 讨论(0)
提交回复
热议问题