AGB  ·  Datenschutz  ·  Impressum  







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

Arbeitsspeicher auslesen...

Ein Thema von Störtebeker · begonnen am 22. Aug 2007 · letzter Beitrag vom 22. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#1

Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 14:26
Hi,

Delphi-Quellcode:
begin
var
  memory: TMemoryStatus;
begin
  memory.dwLength := SizeOf(memory);
  GlobalMemoryStatus(memory);
  Label10.caption:=(IntToStr(memory.dwTotalPhys) + ' Bytes');
  Label11.caption:=(IntToStr(memory.dwAvailPhys) + ' Bytes');
end;
wie muss ich den Code ändern, damit z.B. aus: 242886741 Bytes --> Kilobytes werden. Wäre schön, wenn die Zahl auf zwei Stellen nach dem Komma gerundet wird, damit die Zahl in meinem Anzeigefeld nicht so lang ist.

Thx.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 14:36
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  memory: TMemoryStatus;
begin
  memory.dwLength := SizeOf(memory);
  GlobalMemoryStatus(memory);
  Label10.caption:=FloatToStr(RoundTo((memory.dwTotalPhys/1024),-2)) + ' KB';
  Label11.caption:=FloatToStr(RoundTo((memory.dwAvailPhys/1024),-2)) + ' KB';
end;
Desweiteren muss die Unit 'Math' eingebunden werden.
Sven Kannenberg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 14:39
Delphi-Quellcode:
begin
var
  memory: TMemoryStatus;
begin
  memory.dwLength := SizeOf(memory);
  GlobalMemoryStatus(memory);
  Label10.caption:=Format('%.2f KBytes',[memory.dwTotalPhys / 1024]);
  Label11.caption:=Format('%.2f KBytes',[memory.dwAvailPhys / 1024]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#4

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 14:53
Danke, hat gefunzt. Nun stelle ich fest, dass mir das immernoch ein bisschen zu lang ist. Die nächste Stufe wäre MB.

Benutze folgenden Code:

Delphi-Quellcode:
var
  memory: TMemoryStatus;
begin
  memory.dwLength := SizeOf(memory);
  GlobalMemoryStatus(memory);
  Label10.caption:=Format('%.2f KBytes',[memory.dwTotalPhys / 1024]);
  Label11.caption:=Format('%.2f KBytes',[memory.dwAvailPhys / 1024]);
end;
Was muss ich da jetzt ändern? Die 1024?

Thx.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 14:58
Teil einfach erneut durch 1024
Delphi-Quellcode:
var
  memory: TMemoryStatus;
begin
  memory.dwLength := SizeOf(memory);
  GlobalMemoryStatus(memory);
  Label10.caption:=Format('%.2f MB',[(memory.dwTotalPhys / 1024) / 1024]);
  Label11.caption:=Format('%.2f MB',[(memory.dwAvailPhys / 1024) / 1024]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#6

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 15:10
Ich mal wieder:

Also Code funzt, und ist im Bereich MB auch kurz genug.

Mal ne Frage:

Beinhaltet der Code auch die ständige Aktualisierung des Arbeitsspeichers,
oder muss ich da den Code noch weiter erweitern?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 15:13
Das müsstest Du eigentlich am Besten wissen . Wann rufst Du ihn denn auf? Einmalig oder in einem Timer etc.?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#8

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 15:23
Über OnFormCreate.

Ich muss das Ding in einen Timer setzten? Mit dem Intervall =??

Und weiter zum Thema Speicher auslesen:
Ich habe mal im Task Manager geguckt und da gibt es neben dem physischen Speicher auch den Kernel Speicher und den Zugesicherten Speicher. Funzen die auch mit dem Code?

Natürlich dann nicht Phys, sondern was anderes.

Thx.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 15:32
Wenn Du etwas wiederkehrend aufrufen möchtest, ist der Timer die einfachste Möglichkeit. Ich würde mal ein Intervall von 1000 (= 1 Sekunde) als Basis nehmen und ggf. anpassen. Bzgl. der API kann ich im Moment nichts sagen, da leider kein Delphi zur Hand. Evtl. hilft ein Blick ins MSDN.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#10

Re: Arbeitsspeicher auslesen...

  Alt 22. Aug 2007, 15:56
Ein [STRG]+Linksklick auf
Zitat:
var
memory: TMemoryStatus;
hätte die Windows.pas geöffnet, und Dir folgendes gezeigt:
Delphi-Quellcode:
  _MEMORYSTATUS = record
    dwLength: DWORD;
    dwMemoryLoad: DWORD;
    dwTotalPhys: DWORD;
    dwAvailPhys: DWORD;
    dwTotalPageFile: DWORD;
    dwAvailPageFile: DWORD;
    dwTotalVirtual: DWORD;
    dwAvailVirtual: DWORD;
  end;
Desweiteren empfehle ich Dir die Aneignung von Grundkenntnissen im Bereich der Datenverarbeitung, z.B. dieses Thema für den aktuellen Fall.
  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 04:52 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