Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Speicherauslastung Meines Programms Überwachen (https://www.delphipraxis.net/65409-speicherauslastung-meines-programms-ueberwachen.html)

remie 16. Mär 2006 10:31


Speicherauslastung Meines Programms Überwachen
 
Hallo Leutz ich weiß ich bin der 1000ste der das frägt aber bekomme es trotzdem nicht aleine hin ...
ich muss schauen wieviel Speicher mein Programm braucht.
und wenn es zu viel Braucht das Programm beenden :-D
ich habe da auch schon was in der DP gefundenDP Beitrag BSP
aber das klappt bei mir nicht.
den ich komme mit typ "PPROCESS_MEMORY_COUNTERS" nicht zurecht und in der Delphi Hilfe steht ja auch nix darüber
wäre net wenn ihr mir helfen könntet

Luckie 16. Mär 2006 10:39

Re: Speicherauslastung Meines Programms Überwachen
 
Was heißt "klappt nich"? Und was versteht du unter "nicht zurechtkommen"? Der Code tut gemau das, was du willst.

Aber:
Zitat:

ch muss schauen wieviel Speicher mein Programm braucht.
und wenn es zu viel Braucht das Programm beenden
Ob das so toll ist? Ich würde eher dafür sorgen, dass du nicht mehr benötigten Speicher auch wieder freigibst, anstatt den Speicher in aller Seelenruhe volllaufen zu lassen und dann das Programm zu beenden, wenn er voll ist.

remie 16. Mär 2006 10:44

Re: Speicherauslastung Meines Programms Überwachen
 
Zitat:

Ob das so toll ist? Ich würde eher dafür sorgen, dass du nicht mehr benötigten Speicher auch wieder freigibst, anstatt den Speicher in aller Seelenruhe volllaufen zu lassen und dann das Programm zu beenden, wenn er voll ist.
Das Problem ist eine DLL die ich verwenden muss und die müllt den speicher total voll ka. warum

wenn ich z.B. die funktion da einbinde

Delphi-Quellcode:
function GetWorkingSetSize : integer;
var
  pmc: PPROCESS_MEMORY_COUNTERS;
  cb: Integer;
begin
  cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
  GetMem(pmc, cb);
  pmc^.cb := cb;
  if(GetProcessMemoryInfo(GetCurrentProcess, pmc, cb))then
    result := pmc^.WorkingSetSize div 1024;
  else
    result := -1;
  FreeMem(pmc);
end;
dan bekomme ich als Fehler :
[Fehler] main.pas(380): Undefinierter Bezeichner: 'PPROCESS_MEMORY_COUNTERS'
[Fehler] main.pas(383): Undefinierter Bezeichner: '_PROCESS_MEMORY_COUNTERS'

Luckie 16. Mär 2006 10:52

Re: Speicherauslastung Meines Programms Überwachen
 
Und warum sagst du das nicht gleich? Dann hätte man dir gleich sagen können, dass du noch die PsAPI.pas in den uses aufnehmen musst. Desweiteren hätte auch eine Suche nach Hier im Forum suchenGetProcessMemoryInfo geholfen. ;)

remie 16. Mär 2006 10:56

Re: Speicherauslastung Meines Programms Überwachen
 
:oops: :oops: :oops:
hmm ja ok das nächste mal weiß ichs merci für die schnelle Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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