AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi CPU- & Speicherauslastung des eigenen Programms herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

CPU- & Speicherauslastung des eigenen Programms herausfinden

Ein Thema von Der_Ventilator · begonnen am 30. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
Der_Ventilator

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

CPU- & Speicherauslastung des eigenen Programms herausfi

  Alt 30. Jun 2006, 10:59
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?
Codito, ergo sum. - I code therefore I am
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: CPU- & Speicherauslastung des eigenen Programms hera

  Alt 30. Jun 2006, 13:12
Benutz bitte die Forensuche, das hatten wir schon oft genug.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
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
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: CPU- & Speicherauslastung des eigenen Programms hera

  Alt 30. Jun 2006, 23:27
Hi

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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:20 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