Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CPU- & Speicherauslastung des eigenen Programms herausfinden (https://www.delphipraxis.net/72441-cpu-speicherauslastung-des-eigenen-programms-herausfinden.html)

Der_Ventilator 30. Jun 2006 09:59


CPU- & Speicherauslastung des eigenen Programms herausfi
 
Ich würde gerne in mein Programm eine Statusbar einbauen, die mir anzeigt, wieviel CPU-Zeit und wieviel Arbeitsspeicher es gerade belegt.
Also einfach die Informationen, die ich leicht im Taskmanager abrufen kann.

Geht das irgendwie?

Evtl. mit einer Art Kommandozeilentaskmanager, den ich aufrufen könnte?

Luckie 30. Jun 2006 12:12

Re: CPU- & Speicherauslastung des eigenen Programms hera
 
Benutz bitte die Forensuche, das hatten wir schon oft genug.

Der_Ventilator 30. Jun 2006 22:18

Re: CPU- & Speicherauslastung des eigenen Programms hera
 
Damit kann man die CPU-Auslastung berechen:

Delphi-Quellcode:
var
  LastTick : LongWord;
  LastTime : Int64;
  CPUCount : Word;


// einmal initialisieren:

Var
  CreationTime,
  ExitTime,
  KernelTime,
  UserTime : TFILETIME;
  SystemInfo : TSystemInfo
Begin
  LastTick:=GetTickCount();

  GetProcessTimes(GetCurrentProcess(),CreationTime,ExitTime,KernelTime,UserTime);
  LastTime:=Int64(KernelTime) + Int64(UserTime);

  GetSystemInfo(SystemInfo);
  CPUCount:=SystemInfo.dwNumberOfProcessors;


// periodisch aufrufen (z.B. jede Sekunde):

Var
  CreationTime,
  ExitTime,
  KernelTime,
  UserTime : TFILETIME;
  TickDelta : LongWord;
  TimeDelta : Int64;
begin
  TickDelta:=GetTickCount() - LastTick;
  Inc(LastTick,TickDelta);

  GetProcessTimes(GetCurrentProcess(),CreationTime,ExitTime,KernelTime,UserTime);
  TimeDelta:=(Int64(KernelTime) + Int64(UserTime)) - LastTime;
  Inc(LastTime,TimeDelta);

  Label.Caption:=Format('CPU load: %.1f %%',[TimeDelta / 10000 / CPUCount / TickDelta * 100]);
Aber was mich viel mehr interessieren würde, wäre die Arbeitsspeicherauslastung heruaszufinden.
Dazu kann ich leider nichts finden.

Matze 30. Jun 2006 22:27

Re: CPU- & Speicherauslastung des eigenen Programms hera
 
Hi

Zitat:

Zitat von Der_Ventilator
Aber was mich viel mehr interessieren würde, wäre die Arbeitsspeicherauslastung heruaszufinden.
Dazu kann ich leider nichts finden.

Ich aber hier.

Morgen bereite ich das für die CL auf, wenn ich zeit finde. Das kann man immer mal brauchen.


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