Einzelnen Beitrag anzeigen

Der_Ventilator

Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
 
Delphi 2010 Professional
 
#3

Re: CPU- & Speicherauslastung des eigenen Programms hera

  Alt 30. Jun 2006, 23:18
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.
Codito, ergo sum. - I code therefore I am
  Mit Zitat antworten Zitat