Feedback

C# - Memory-Verbrauch des aktuellen Prozesses ermitteln

Veröffentlicht von am 15.03.2010
(0 Bewertungen)
ermittelt die Menge an benutztem RAM durch den laufenden Prozess
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

public long lngSessMemory;
lngSessMemory = Process.GetCurrentProcess().WorkingSet64;
lblCurrentProcessMemory.Text = "RAM-Verbrauch: " + (Convert.ToDouble(lngSessMemory) / 1000 / 1000).ToString("0.##") ;
Abgelegt unter ram, memory, arbeitsspeicher, prozess, process.

4 Kommentare zum Snippet

Christopher Wolf schrieb am 16.03.2010:
Hi, also die Berechnung sollte meiner Meinung nach mit 1024 von statten laufen. Und dann würde ich den long Wert in Double konvertieren um auch eine gewisse Genauigkeit zu gewährleisten.
Und ich würde mit string.Format()...

Als Beispiel, könnte man das so lösen:
string.Format("RAM-Verbrauch: {0} MB", (Convert.ToDouble(lngSessMemory) / 1024 / 1024).ToString("0.###"));
matze schrieb am 17.03.2010:
Ich hab das jetzt nochmal geprüft, beide Werte stimmen nicht mit denen im TaskManager überein. Danke für die Verbesserung, werde das einbauen.
Wolfgang schrieb am 18.03.2010:
@matze,
ich vermute mal, dass das Problem darin liegt, dass du über diese Methode den tatsächlichen Speicherverbrauch dieses einen Threads bekommst.. aber Experte bin ich auch keiner.

Um den Speicherverbrauch deiner gesamten Anwendung zu ermittlen würde ich die diese Eigenschaft empfehlen:
//
// Zusammenfassung:
// Ruft die Größe des physikalischen Speichers ab, der dem Prozesskontext zugeordnet
// ist.
//
// Rückgabewerte:
// Eine 64-Bit-Ganzzahl mit Vorzeichen, die die Größe des dem Prozesskontext
// zugeordneten physikalischen Speichers in Bytes angibt.
System.Environment.WorkingSet


und ja, wenn du diese Bytes in kilo- oder Megabyte haben willst sollte es schon die Division mit 1024 sein ;-)
FormFollowsFunction schrieb am 16.09.2019:
"und ja, wenn du diese Bytes in kilo- oder Megabyte haben willst sollte es schon die Division mit 1024 sein ;-)"
Nein, es ist zwar leider üblich es so zu betrachten, aber es ist grundlegend falsch !
Kilo, Mega usw. müssen korrekterweise mit 1000 dividiert werden.
https://de.wikipedia.org/wiki/Kilo
Kibi, Mebi usw. mit 1024.
https://de.wikipedia.org/wiki/Binäpräfix
 

Logge dich ein, um hier zu kommentieren!