AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherauslastung unter .NET

Ein Thema von mumu · begonnen am 13. Jun 2007 · letzter Beitrag vom 14. Jun 2007
Antwort Antwort
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Speicherauslastung unter .NET

  Alt 13. Jun 2007, 14:06
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
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#2

Re: Speicherauslastung unter .NET

  Alt 13. Jun 2007, 19:38
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
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#3

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 10:45
ich bin bei meinen Nachforschungen auf folgende Funktion gekommen: GetWsChanges bzw. InitializeProcessForWsWatch.

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...
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 10:51
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
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#5

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 11:44
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...
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#6

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 11:47
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
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#7

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 12:06
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?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#8

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 12:18
Zitat von mumu:
ich möchte aber allgemein alle speicherzugriffe zählen... geht das?
Nein. Warum? Schau mal:

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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#9

Re: Speicherauslastung unter .NET

  Alt 14. Jun 2007, 12:24
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz