C#.NETでシステムで使用可能なメモリのサイズを取得することは可能ですか?はいの場合はどうですか?
6 に答える
を使用しMicrosoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory
ます。
プロジェクトを右クリックし、[参照を追加]を選択して、を選択しますMicrosoft.VisualBasic
。
この回答は、HansPassantの回答に基づいています。必要なプロパティは実際にはAvailablePhysicalMemoryです。そしてそれ(およびTotalPhysicalMemoryなど)はインスタンス変数であるため、
new ComputerInfo().AvailablePhysicalMemory
C#で動作しますが、なぜこのページにC#の場合、「この言語はサポートされていないか、コード例がありません」と記載されているのでしょうか。
'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
var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes");
var memory = performance.NextValue();
System.Diagnosticsを介してアクセス可能なパフォーマンスカウンターを使用することは、1つのオプションになります。
http://www.dotnetspider.com/resources/4612-Find-Memory-usage-CPU-usage.aspxを参照してください
お役に立てれば!
コードの一部:
System.Diagnostics.PerformanceCounter ramCounter;
ramCounter = new System.Diagnostics.PerformanceCounter("Memory", "Available Bytes"); //"Available MBytes" for MB
string getAvailableRAMInBytes = ramCounter.NextValue() + "byte";