59

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

4

6 に答える 6

66

を使用しMicrosoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemoryます。

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

于 2010-07-21T04:18:11.533 に答える
28

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

new ComputerInfo().AvailablePhysicalMemory

C#で動作しますが、なぜこのページにC#の場合、「この言語はサポートされていないか、コード例がありません」と記載されているのでしょうか。

于 2010-07-21T05:50:45.617 に答える
20

'c#システムメモリ'をグーグルした後の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();
        }
    }
}

出力:

合計スペース=4033036

総物理メモリ=2095172

合計仮想メモリ=1933904

使用可能な仮想メモリ=116280

于 2010-07-21T04:04:04.307 に答える
12
var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes");
var memory = performance.NextValue();
于 2017-10-27T06:04:42.057 に答える
2

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

http://www.dotnetspider.com/resources/4612-Find-Memory-usage-CPU-usage.aspxを参照してください

お役に立てれば!

于 2010-07-21T04:05:07.113 に答える
0

コードの一部:

 System.Diagnostics.PerformanceCounter ramCounter;     
 ramCounter = new System.Diagnostics.PerformanceCounter("Memory", "Available Bytes"); //"Available MBytes" for MB
 string getAvailableRAMInBytes = ramCounter.NextValue() + "byte";
于 2021-06-25T09:44:49.810 に答える