web-dev-qa-db-ja.com

使用可能なシステムメモリのサイズを取得する方法は?

C#.NETでシステムで使用可能なメモリのサイズを取得することは可能ですか?はい、どうですか?

44
Louis Rhys

つかいます - Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory

プロジェクトを右クリックして[参照の追加]を選択し、Microsoft.VisualBasic

56
Hans Passant

この答えは、Hans Passantの回答に基づいています。必須プロパティは、実際にはAvailablePhysicalMemoryです。そして、それ(およびTotalPhysicalMemoryなど)はインスタンス変数であるため、

new ComputerInfo().AvailablePhysicalMemory

C#で動作しますが、なぜ このページ がC#については「この言語はサポートされていないか、使用可能なコード例がない」と言っているのでしょうか。

26
Louis Rhys

EggHeadCafe 「c#system memory」のグーグルの後

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

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

System.Diagnosticsを介してアクセス可能なパフォーマンスカウンターを使用することは1つのオプションです。

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

お役に立てれば!

4
Jagmag