webentwicklung-frage-antwort-db.com.de

Wie erhalte ich die Größe des verfügbaren Systemspeichers?

Ist es möglich, die Größe des verfügbaren Systemspeichers in C # .NET abzurufen? wenn ja wie?

44
Louis Rhys

Verwenden Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory .

Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie Verweis hinzufügen und dann Microsoft.VisualBasic.

56
Hans Passant

Diese Antwort basiert auf der von Hans Passant. Die erforderliche Eigenschaft ist eigentlich AvailablePhysicalMemory. und es (und TotalPhysicalMemory und andere) sind Instanzvariablen, so sollte es sein

new ComputerInfo().AvailablePhysicalMemory

Es funktioniert in C #, aber ich frage mich, warum diese Seite sagt, dass für C # "Diese Sprache nicht unterstützt wird oder kein Codebeispiel verfügbar ist."

26
Louis Rhys

From EggHeadCafe nach dem googeln nach 'c # system memory'

Sie müssen einen Verweis auf System.Management hinzufügen

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();
        }
    }
}

Ausgabe:

Gesamter Speicherplatz = 4033036

Gesamter physischer Speicher = 2095172

Virtueller Gesamtspeicher = 1933904

Verfügbarer virtueller Speicher = 116280

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

Die Verwendung der über System.Diagnostics zugänglichen Leistungsindikatoren ist eine Option.

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

Hoffe das hilft!

4
Jagmag