Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeit automatisch stoppen (https://www.delphipraxis.net/151418-zeit-automatisch-stoppen.html)

GUSU 17. Mai 2010 12:06


Zeit automatisch stoppen
 
Also: Ich suche eine Möglichkeit die Zeit zu stoppen, während Delphi Zahlen sortiert. Ist die Sortierung fertig wird die Zeit auch automatisch gestoppt. Danach soll die gestoppte Zeit angezeigt werden, wie lange Delphi brauchte um die Zahlen zu sortieren. Wie geh ich da am ehesten ran?

Danke :-D

Tryer 17. Mai 2010 12:08

Re: Zeit automatisch stoppen
 
Einfluß auf das Raum-Zeit-Gefüge kann man mit Delphi nicht nehmen, aber du kannst es mal mit "GetTickCount" oder "QueryPerformanceCounter" versuchen (Dazu gibts hier bestimmt was im Forum).

Grüsse, Dirk

Luckie 17. Mai 2010 12:11

Re: Zeit automatisch stoppen
 
Mit MSDN-Library durchsuchenGetTickCount vor dem Start die Zeit merken und da nach noch mal aufrufen und dann die Zeiten subtrahieren. Dann hast du die Dauer in Millisekunden.

GUSU 17. Mai 2010 12:23

Re: Zeit automatisch stoppen
 
Link funktioniert nicht ;)

Luckie 17. Mai 2010 12:24

Re: Zeit automatisch stoppen
 
Zitat:

Zitat von GUSU
Link funktioniert nicht ;)

Link kann mit etwas nachdenken zum Funktionieren gebracht werden.

GUSU 17. Mai 2010 12:31

Re: Zeit automatisch stoppen
 
Zitat:

Zitat von Luckie
Link kann mit etwas nachdenken zum Funktionieren gebracht werden.

Hmm... wäre bestimmt möglich wenn die Server antworten würden. Ach ja, trotzdem Danke :)

franktron 17. Mai 2010 12:38

Re: Zeit automatisch stoppen
 
Zitat:

Zitat von GUSU
Zitat:

Zitat von Luckie
Link kann mit etwas nachdenken zum Funktionieren gebracht werden.

Hmm... wäre bestimmt möglich wenn die Server antworten würden. Ach ja, trotzdem Danke :)

Also bei mir geht der

GUSU 17. Mai 2010 12:40

Re: Zeit automatisch stoppen
 
Zitat:

Zitat von franktron
Zitat:

Zitat von GUSU
Zitat:

Zitat von Luckie
Link kann mit etwas nachdenken zum Funktionieren gebracht werden.

Hmm... wäre bestimmt möglich wenn die Server antworten würden. Ach ja, trotzdem Danke :)

Also bei mir geht der

:( Nee hier antwortet nichts, selbst wenn man über Google rein will :/

Noedel 17. Mai 2010 13:06

Re: Zeit automatisch stoppen
 
Delphi-Quellcode:
...
procedure bla();
var zeit_vor, Zeit_nach, Zeit_gesamt : Int64;
begin
  zeit_vor:=GetTickCount;
  Sortiere(...);
  zeit_nach:=GetTickCount;
  Zeit_gesamt:=Zeit_nach - Zeit_vor;
  Showmessage('Sortierung dauerte '+IntToStr(Zeit_gesamt)+' ms');
end;

himitsu 17. Mai 2010 13:35

Re: Zeit automatisch stoppen
 
- Erstmal kommt es darauf an, wie lange die Messung dauern soll
(GetTickCount und Now ist recht einfach zu nutzen, aber die Messnug sollte mindestens mehrere 100 Millisekunden andauern, da die Genauigkeit bei 15-20 ms liegt)

- dann auch noch darauf, wie genau die Messung sein soll
(wie gesagt, GetTickCount und Now haben eine gewisse Tolleranz)

- und sogar auf die Delphi-Version kommt es an (also was man alles nutzen kann)

im Prinzip geht es immer so: [edit] siehe Noedel
Delphi-Quellcode:
Start := aktuellZeit;
//messung
Ende := aktuelleZeit;
Dauer := Ende - Start;

Delphi-Quellcode:
Dauer := GetTickCount;
//messung
Dauer := GetTickCount - Dauer;
// Dauer anzeigen ... Zeit in Millisekunden
PS: Es dürfte in der DP (vielleicht sogar in der CodeLil) einige Codes/Klassen/Komponenten zur Zeitmessung existieren.

Zum Debuggen/Optimieren von Code nehme ich seit Jahren eigene Codes
> das aktuellste versteckt sich da mit in dem Thread
http://www.delphipraxis.net/internal...153808#1153808

Delphi-Quellcode:
Timer.Init;

Timer.Start(1);
// hier das zu Messende
Timer.Stop(1);

Timer.Show;
Der Code ist allerdings auf viele und auch kurze Messungen optimiert
und verlangt Funktionalitäten, welche ab Delphi 2006 (TDE) vorhanden sind.
(läßt sich aber auch alles in eine Klasse verpacken und als Objekt und mit "normalen" Methoden wären auch mehrere Timer-Objekte möglich)
... wie gesagt, in dieser Fassung ist der Code für's Debuggen optimiert und mißt mit 'ner Auflösung von fast 'ner Mikrosekunde.


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