Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 93
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Memory-Verbrauch des aktuellen Prozesses ermitteln


Autor: matze
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 5349
  
Kick it on dotnet-kicks.de  

Beschreibung:

ermittelt die Menge an benutztem RAM durch den laufenden Prozess

Abgelegt unter: ram, memory, arbeitsspeicher, prozess, process.



C#
1
2
3
public long lngSessMemory;
lngSessMemory = Process.GetCurrentProcess().WorkingSet64;
lblCurrentProcessMemory.Text = "RAM-Verbrauch: " + (Convert.ToDouble(lngSessMemory) / 1000 / 1000).ToString("0.##") ;
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Christopher Wolf schrieb am:  16.03.2010 08:44:48

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 15:46:24

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 19:45:35

@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 ;-)


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.