AGB  ·  Datenschutz  ·  Impressum  







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

Virtuellen Speicher auslesen

Ein Thema von Alex_ITA01 · begonnen am 21. Sep 2006 · letzter Beitrag vom 25. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Virtuellen Speicher auslesen

  Alt 21. Sep 2006, 10:59
Hallo erstmal,
gibt es eine Möglichkeit, den virtuellen Speicher meiner Anwendung auszulesen.
Den normalen Speicherverbrauch kann ich auslesen aber ich benötige zusätzlich den virtuellen.
Wäre super wenn ihr mir helfen könntet.
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#2

Re: Virtuellen Speicher auslesen

  Alt 21. Sep 2006, 12:14
Also ich denke mal du ließt schon den virtuellen Speicher aus, denn an den Physischen kommst du eh nicht so einfach ran
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: Virtuellen Speicher auslesen

  Alt 21. Sep 2006, 13:12
Mit den Fingern kommst du an den physischen Speicher...

Delphi-Quellcode:
 
var
memory: TMemoryStatus;
begin

//Memory ausgeben
memory.dwLength := SizeOf(memory);
GlobalMemoryStatus(memory);
x := memory.dwTotalPhys - memory.dwAvailPhys;
y := memory.dwTotalPhys;
Label1.Caption:=IntToStr(round((x/y)*100))+'% von '+inttostr(Round(y/1024))+' KB';
Das ist der freie phys. Speicher und gesamte physische Speicher.
Da kommt man sehr wohl ran...
Ist da etwas virtuell?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#4

Re: Virtuellen Speicher auslesen

  Alt 22. Sep 2006, 18:54
Das was du/dein Programm sieht, ist der virtuelle Speicher

Windos verteil den physischen Speicher + die PageFile an die Programme und blendet Teile davon in deren virtuellen Speicher ein.

Oder hast du dich noch nie gefragt, warum z.B. deine Delphi-Programme immer (standardmäig) an der selben Adresse ($00400000..) liegen, selbst wenn mehrere gleichzeitig geladen sind?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Virtuellen Speicher auslesen

  Alt 22. Sep 2006, 22:24
Moin Go2EITS,

hast Du Dir mal die anderen Teile von MEMORYSTATUS angesehen?
Z.b. dwTotalVirtual
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Virtuellen Speicher auslesen

  Alt 23. Sep 2006, 15:11
Hallo,
also ich lese den Speicherverbrauch meiner Anwendung so aus:

Delphi-Quellcode:
  Wert := 0;
  cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
  GetMem(pmc, cb);
  pmc^.cb := cb;
  if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
  begin
    Wert := pmc^.WorkingSetSize;
  end;
Ich will aber zusätzlich noch den virtuellen Speicher.
Im Taskmanager kann man sich ja noch eine Spalte zu jedem Prozess anzeigen lassen (Größe virtueller Speicher). Diesen Wert würde ich noch gerne haben wollen...
Danke schonmal.
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#7

Re: Virtuellen Speicher auslesen

  Alt 25. Sep 2006, 08:12
Hallo erstmal,
also MemoryStatus macht mich nicht ganz glücklich.
Ich benötige folgenden Wert, den der Taskmanager auch auslesen kann.

Siehe ScreenShot.
Ich hoffe ihr könnt mir da irgendwie helfen.
Wäre echt super, denn ich brauche den Wert...
MFG Alex
PS: Den ersten Wert (erste Spalte) habe ich bereits. Ich brauche NUR den zweiten
Miniaturansicht angehängter Grafiken
taskmanager_162.jpg  
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: Virtuellen Speicher auslesen

  Alt 25. Sep 2006, 08:24
Zitat von Alex_ITA01:
Hallo erstmal,
also MemoryStatus macht mich nicht ganz glücklich.
Ich benötige folgenden Wert, den der Taskmanager auch auslesen kann.

Siehe ScreenShot.
Ich hoffe ihr könnt mir da irgendwie helfen.
Wäre echt super, denn ich brauche den Wert...
MFG Alex
PS: Den ersten Wert (erste Spalte) habe ich bereits. Ich brauche NUR den zweiten
Das kannst du erfahren über die Api GlobalMemoryStatus in verbindung
mit der Type MEMORYSTATUS

Hoffe das hilft weiter
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#9

Re: Virtuellen Speicher auslesen

  Alt 25. Sep 2006, 08:27
Hallo,
MemoryStatus zeigt mir nur den virtuellen Speicher vom ganzen PC an.
dwTotalVirtual oder dwAvailVirtual.
Ich brauche aber den Verbrauch dieser Anwendung.
Geht das auch mit MemoryStatus? Wenn ja, wie? Ich bekomme es so nicht hin.
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: Virtuellen Speicher auslesen

  Alt 25. Sep 2006, 08:29
Zitat von Alex_ITA01:
Hallo,
MemoryStatus zeigt mir nur den virtuellen Speicher vom ganzen PC an.
dwTotalVirtual oder dwAvailVirtual.
Ich brauche aber den Verbrauch dieser Anwendung.
Geht das auch mit MemoryStatus? Wenn ja, wie? Ich bekomme es so nicht hin.
MFG Alex
Sorry ich kann es dir nur als VB-BEispiel zeigen.
das sind alle Werte welche du über diese API erfahren kannst.

Delphi-Quellcode:
Public Type MEMORYSTATUS
    dwLength As Long
    dwMemoryLoad As Long
    dwTotalPhys As Long
    dwAvailPhys As Long
    dwTotalPageFile As Long
    dwAvailPageFile As Long
    dwTotalVirtual As Long
    dwAvailVirtual As Long
End Type
gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:57 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