AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit automatisch stoppen

Ein Thema von GUSU · begonnen am 17. Mai 2010 · letzter Beitrag vom 17. Mai 2010
Antwort Antwort
GUSU

Registriert seit: 17. Mai 2010
4 Beiträge
 
#1

Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:06
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
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:11
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
GUSU

Registriert seit: 17. Mai 2010
4 Beiträge
 
#4

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:23
Link funktioniert nicht
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:24
Zitat von GUSU:
Link funktioniert nicht
Link kann mit etwas nachdenken zum Funktionieren gebracht werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
GUSU

Registriert seit: 17. Mai 2010
4 Beiträge
 
#6

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:31
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
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:38
Zitat von GUSU:
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
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
GUSU

Registriert seit: 17. Mai 2010
4 Beiträge
 
#8

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 13:40
Zitat von franktron:
Zitat von GUSU:
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 :/
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#9

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 14:06
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

Re: Zeit automatisch stoppen

  Alt 17. Mai 2010, 14:35
- 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 00:12 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