Wie kann ich den verfügbaren RAM oder Speicher von der Anwendung verwendet werden?So erhalten Sie Speicher verfügbar oder in C verwendet #
Antwort
Sie sollten einen Blick auf die System.Diagnostics.Process
Klasse nehmen.
System.Environment hat WorkingSet. Wenn Sie viele Details wünschen, gibt es System.Diagnostics.PerformanceCounter, aber es wird ein bisschen mehr Aufwand für die Einrichtung sein.
können Sie verwenden:
Process proc = Process.GetCurrentProcess();
den aktuellen Prozess und die Verwendung zu erhalten:
proc.PrivateMemorySize64;
die private Speichernutzung zu erhalten. Weitere Informationen finden Sie unter this link.
Es sollte wahrscheinlich bemerkt werden, dass ein Aufruf von GetCurrentProcess selbst ziemlich viele Ressourcen zuweisen wird. Rufen Sie Dispose für den zurückgegebenen Prozess auf, wenn Sie fertig sind, oder wickeln Sie den gesamten Code in einen Bereich "using" ein. –
Namensraum: System.Diagnostics Assembly: System (in System.dll) –
Ich mag würde auch hinzufügen, dass die PrivateMemorySize64 Eigenschaft (+ andere Objekte) selbst nicht automatisch bis Refresh() aktualisiert wird, wird aufgerufen. (Es ist auf der Seite über den obigen Link erwähnt.) – ScottRhee
Sie könnten die GC.GetTotalMemory Methode überprüfen möchten.
Es ruft die Anzahl von Bytes gedacht derzeit von der Garbage Collector zugeordnet werden.
Nur in verwalteten Heaps. Arkains Antwort sollte sowohl native als auch gemanagte Heaps liefern. – Yaur
Blick here für weitere Einzelheiten.
private PerformanceCounter cpuCounter;
private PerformanceCounter ramCounter;
public Form1()
{
InitializeComponent();
InitialiseCPUCounter();
InitializeRAMCounter();
updateTimer.Start();
}
private void updateTimer_Tick(object sender, EventArgs e)
{
this.textBox1.Text = "CPU Usage: " +
Convert.ToInt32(cpuCounter.NextValue()).ToString() +
"%";
this.textBox2.Text = Convert.ToInt32(ramCounter.NextValue()).ToString()+"Mb";
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void InitialiseCPUCounter()
{
cpuCounter = new PerformanceCounter(
"Processor",
"% Processor Time",
"_Total",
true
);
}
private void InitializeRAMCounter()
{
ramCounter = new PerformanceCounter("Memory", "Available MBytes", true);
}
Wenn Sie Wert 0 bekommen müssen es NextValue()
zweimal nennen. Dann gibt es den tatsächlichen Wert der CPU-Nutzung. Sehen Sie mehr Details here.
Für das gesamte System können Sie das Microsoft.VisualBasic Framework als Referenz hinzufügen;
Console.WriteLine("You have {0} bytes of RAM",
new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory);
Console.ReadLine();
- 1. Openfile Begrenzung Speicher verfügbar
- 2. Erhalten Sie den verbleibenden verfügbaren Speicher in Standard C++ 11?
- 3. So erhalten Sie Daten zwischen zwei Daten in C#
- 4. Objective-C - So erzwingen Sie wenig Speicher auf iOS-Simulator
- 5. So erhalten Sie eine Kartensteuerung oder Interaktion
- 6. Speicher für Aktivierungsstapel verfügbar?
- 7. Kein Heap-Speicher mehr verfügbar
- 8. So testen Sie, ob UIActivityTypePostToFacebook oder UIActivityTypePostToTwitter verfügbar ist
- 9. Wie viel Speicher verwendet ein C++ Zeiger?
- 10. Akkalautsprecher (Scala) So erhalten Sie einen Heapspeicherauszug aus dem Speicher
- 11. So erhalten Sie Sharepoint-Liste mit C#
- 12. Verwendet eine C++ Vorlage Speicher, wenn sie nie referenziert wird?
- 13. So erhalten Sie Dateisymbol mit C++
- 14. Erhalten Sie verfügbar/kostenlos RAM des Computers in Swift
- 15. Erhalten verfügbar clojure Namespaces
- 16. So erhalten Sie eine bestimmte Speicheradresse mit C
- 17. So erhalten Sie die Seriennummer des USB-Sticks in C#
- 18. So erhalten Sie den Benutzernamen von macosx in objective-c
- 19. Erhalten Sie die Gesamtmenge an GPU-Speicher?
- 20. So erhalten Sie unser eigenes Datumsformat in C#
- 21. So erhalten Sie die Länge einer MP3 in C#
- 22. Bad Alloc mit einem 200GB Speicher verfügbar C++
- 23. So erhalten Sie Testverlauf
- 24. So erhalten Sie Text in diesem Code
- 25. C++ Vorlage Copykonstruktor nicht verfügbar oder explizite
- 26. Active Collab erhalten Benutzerinformationen nach Token oder Anmeldeinformationen ist verfügbar?
- 27. Speicher voll durch Timer oder Webbrowser? C#
- 28. So erhalten Sie Standort (Affinitätszone) oder Name Cluster (Fabric-Dienst)
- 29. So erhalten Sie StorageFolder Modified Time?
- 30. So erhalten Sie Daten einer Spalte eines Blattes durch C#
Beachten Sie, dass derzeit verwendeter physischer RAM der Arbeitssatz ist, der zugewiesene Speicher in private oder geteilte Bytes (abhängig von der Art der Zuweisung). – Richard