Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Programm Zeit (https://www.delphipraxis.net/162256-programm-zeit.html)

Chris92 .A 14. Aug 2011 21:13

Delphi-Version: 5

Programm Zeit
 
Hallo liebe community,

Ich bin es erneut ich wollte wissen ob man irgendwie im voraus herausfinden kann wie lange ein Programm für die Ausführung benötigt.

MFG

Chris92 .A

Luckie 14. Aug 2011 21:24

AW: Programm Zeit
 
Wenn es nicht sehr genau sein muss, nimm MSDN-Library durchsuchenGetTickCount.

stahli 14. Aug 2011 21:30

AW: Programm Zeit
 
Wenn Du eine bestimmte Anzahl Durchläufe einer Schleife hast, kannst Du die noch benötigte Zeit nach jedem Schleifendurchlauf (oder nach jedem hundertsten) berechnen.
Mehr wirst Du nicht im Voraus ermitteln können.

Chris92 .A 14. Aug 2011 21:32

AW: Programm Zeit
 
GetTickCount gibt doch die Zeit an die benötigt wurde um das Programm auszuführen.
Doch ich will irgendwie im voraus berechnen wie lange das Programm in ungefähr benötigt um was auszuführen.
Das Programm soll je nachdem sehr viele Wörter zusammen setzen die aus Schleifen erstellt werden und dabei wollte ich im voraus ungefähr wissen wie lange das Programm in ungefähr dafür benötigt.

Luckie 14. Aug 2011 21:36

AW: Programm Zeit
 
Zitat:

Zitat von Chris92 .A (Beitrag 1116843)
GetTickCount gibt doch die Zeit an die benötigt wurde um das Programm auszuführen.

Wo hast du denn das gelesen? GetTickCount gibt die Zeit in Millisekunden an seit Windows gestartet wurde. Wie man jetzt damit ermitteln kann, wie lange eine bestimmte Routine im Programm benötigt, überlasse ich dir.

Chris92 .A 14. Aug 2011 21:40

AW: Programm Zeit
 
Ok dann hab ich mich mit GetTickCount geirrt. Doch was meinst du damit "wie lange eine bestimmte Routine im Programm benötigt", weis du es nicht oder willst du es nicht verraten?

MFG

Chris92 .A

Gargoyl 14. Aug 2011 21:46

AW: Programm Zeit
 
Du misst einfach die Zeit die dein Programm benötigt um eine kleine Anzahl von Wörtern benötigt, dann rechnest du die Zeit hoch auf die Gesamtzahl der Wörter die zusammen gesetzt werden sollen. Die Restzeit kannst du nach jedem Schleifendurchlauf aktualisieren. In etwa so:

Delphi-Quellcode:
Startzeit := GetTickCount();
Label.Caption := 'geschätzte Restzeit: unbekannt';
for i:=1 to GesAnzahl do
  begin
    ... mach einen Schritt ...

    zwischenZeit := GetTickCount();
    benötigteZeit := zwischenZeit - Startzeit;
    restZeit := (benötigteZeit div i) * (GesAnzahl - i);
    Label.Caption := 'geschätzte Restzeit: ' + restZeit + ' Sekunden';
  end;
Label.Caption := '';
So ungefähr sollte es Funktionieren. Den Pseudocode musst du halt ausformulieren, auch die Umrechnung von GetTickCount() in Sekunden. Oder wie auch immer du das anzeigen willst.

Ist es das was du meinst? Oder willst du die Zeit wissen bevor du überhaupt die Schleife startest? Letzteres dürfte schwierig sein, auch weil die Ausführungszeit von PC zu PC verschieden ist.

Luckie 14. Aug 2011 21:47

AW: Programm Zeit
 
Ich weiß es, aber das selber herauszufinden, sollte mit etwas nachdenken für dich auch kein Problem sein. Überleg mal, was du machst, wenn du wissen willst, wie lange etwas dauert und du nur die Uhr an der Wand zur Verfügung hast, also keine Stoppuhr.

@Gargoyl: :twisted:

Gargoyl 14. Aug 2011 21:54

AW: Programm Zeit
 
Zitat:

Zitat von Luckie (Beitrag 1116849)
@Gargoyl: :twisted:

War das zu viel Hilfestellung? :duck:

Luckie 14. Aug 2011 21:58

AW: Programm Zeit
 
Wenn das seine Frage war, war das alles. ;)


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