![]() |
Speicherauslastung unter .NET
Wie kann ich die Speicherauslastung eines Prozesses mit dem Microsoft .NET Framework auslesen? Ich möchte wissen, wie viel Speicher eine Applikation im Moment tatsächlich benötigt. (incl. ausgelagertem Speicher auf der Festplatte)
jemand ne idee? danke schonmal |
Re: Speicherauslastung unter .NET
es gibt ja von windows so Leistungsindikatoren, die man auslesen kann. welcher davon beschreibt am besten die Arbeitsspeicherauslastung innerhalb eines gewissen Zeitraums? auf einem server läuft nämlich ein prozess, den ich überwache. und je nachdem welche operation ich ausführ, möchte ich wissen, wo mehr arbeitsspeicher benötigt wird.
versteh jemand überhaupt was ich mein :-) |
Re: Speicherauslastung unter .NET
ich bin bei meinen Nachforschungen auf folgende Funktion gekommen:
![]() ![]() Meint ihr dass ist ein guter Indikator dafür, wie viel Speicher ein Process in einer gewissen Zeit benötigt hat??? Gibt es sowas wie diese Funktionen bereits im .NET Framework? oder wie binde ich diese Psapi Dll in mein .NET Project ein verwende diesen win32-code??? wär klasse, wenn mir da jemand helfen könnte... |
Re: Speicherauslastung unter .NET
Eventuell ist der System.Diagnostics.PerformanceCounter etwas für dich. Das ist nämlich gerade die Kapselung der Leistungsindikatoren.
Edit: Jetzt weiß ich auch, warum ich das Gefühl hatte, dir das schonmal geschrieben zu haben. Ich hab nämlich genau das gleiche in deinem Thread zur CPU-Auslastung unter .NET geschrieben :roll: |
Re: Speicherauslastung unter .NET
hehe ja :-), da hast du mir auch schon den Tipp mit dem PerformanceCounter gegeben. Bloß ich hab irgendwie schon alle PerformanceCounter durchgeschaut, aber ich weiß nicht welcher davon Sinn macht. Ich würde halt gern wissen, wie viele Speicherzugriffe innerhalb einer gewissen Zeitspanne gemacht wurden, damit ich vergleichen kann, wann mehr auf dem Speicher zugegriffen werden musste...
|
Re: Speicherauslastung unter .NET
Ich glaube, diese Geschichte mit der Zeitspanne können die Performance Counter von sich aus. Vielleicht hilft dir der Artikel "How to: Retrieve Performance Counter Samples" aus dem Windows SDK weiter. Wirklich fit bin ich damit auch nicht, ich bin nur regelmäßig bei der Suche nach dem Windows Performance Counter (QueryPerformanceCounter und so) immer wieder fälschlicherweise darauf gestoßen und Opfer meiner Neugier geworden :mrgreen:
|
Re: Speicherauslastung unter .NET
eigentlich gibt es nur so performancecounter, welche die anzahl an lese und schreibvorgänge für auf der festplatte ausgelagerte memory blöcke zählen. ich möchte aber allgemein alle speicherzugriffe zählen... geht das?
|
Re: Speicherauslastung unter .NET
Zitat:
1. = Speicherzugriff 2. = Speicherzugriff wird gezählt 3. = Neuer Wert Anzahl Speicherzugriffe muss wohin geschrieben werden -> 4. = Speicherzugriff aufgrund der Wertänderung 5. = Huch.. der muss ja gezählt werden 6. = Ich hab den alten Wert zwar noch nicht geschrieben, aber der neuer Wert muss jetzt dennoch weggeschrieben werden 7. = Speicherzugriff aufgrund der Wertänderung durch die Wertänderung und so weiter und so fort. -> Kann gar nicht gehen. ;-) Edit: Halbes Wort vergessen :oops: |
Re: Speicherauslastung unter .NET
hmm wenn ichs mir recht überleg, ist das wirklich einleuchtend :-) danke für den hinweis :-)
nur was zählt man dann am besten? die Anzahl an Zugriffe auf ausgelagerte Speicherblöcke? ich möchte halt irgendwie ein Maß, dass mir sagt, wann der Prozess mehr zu tun hatte. es geht um folgendes Szenario. Der Prozess erhält Nachrichten in einer bestimmten Größe (z.B. 1 MB bis 100 MB) und ich möchte halt wissen, um wie viel der Faktor an Speicherauslastung bzw. -zugriffen steigt, wenn ich beispielsweise eine 10mal so große Nachricht verarbeite. Dann kann es eben sein, dass der Prozess jedoch 100 mal so viel Speicherzugriffe benötigt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz