AGB  ·  Datenschutz  ·  Impressum  







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

Zeit messen

Offene Frage von "SleepyMaster"
Ein Thema von SleepyMaster · begonnen am 3. Jun 2005 · letzter Beitrag vom 3. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

Zeit messen

  Alt 3. Jun 2005, 14:39
Hi ihrs...

Ich hab grade ein Problem damit, wie ich die Zeit messen kann...
Das Problem ist, dass ich NICHT auf GetTickCount zurückgreifen kann, da die Zeiten von zwei Verschiedenen Rechnern verglichen werden müssen.

Hat jemand eine ELEGANETE Lösung dafür?

Vielen Dank
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zeit messen

  Alt 3. Jun 2005, 15:02
hm versteh das problem zwar noch nicht ganz.
zeitmessen ist einfach
jetzt jetzt "now" 2 mal nehemn und differenz bilden.

und wenn du die zeit von 2 verschiedenen rechnern vergleichen willst
würde das heißen bei jedem einmal mit dem befehl now die zeit zu holen
und dan von beiden zeiten die differenz zu bilden.
typ wäre TDateTime;
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: Zeit messen

  Alt 3. Jun 2005, 15:04
Zitat von SleepyMaster:
Hat jemand eine ELEGANETE Lösung dafür?
Kommt drauf an, WAS du genau messen musst
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#4

Re: Zeit messen

  Alt 3. Jun 2005, 15:16
Das mit dem Now hab ich auch schon Probiert...
Jedoch ist das Ergebniss auch ein TDateTime ich brauche aber die Differenz in Sekunden...
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#5

Re: Zeit messen

  Alt 3. Jun 2005, 15:32
ok... Hab eine Lösung, die sogar auf die Milisekunde genau ist...
Delphi-Quellcode:
var
  Form1: TForm1;
  starttime: TTimeStamp;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  starttime := DateTimeToTimeStamp(now);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  TimeStamp: TTimeStamp;
begin
  TimeStamp := DateTimeToTimeStamp(now);
  label1.Caption := inttostr((TimeStamp.Date - starttime.Date)*24*60*60*1000 + TimeStamp.Time - starttime.Time);
end;
  Mit Zitat antworten Zitat
Marphy

Registriert seit: 24. Feb 2005
162 Beiträge
 
Delphi 7 Professional
 
#6

Re: Zeit messen

  Alt 3. Jun 2005, 15:35
Hallo Schläfer ,
schau mal in meinem Thread "Kompressionsverfahren" nach und lade dir den Source runter. Mittels der Unit "PrecTimer" kannst du ultra-genaue Zeitmessungen durchführen (eine Millisekunde sind da schon Welten) Der Urprungscode stammt aus dem Visual Basic 6 Kochbuch (von Doberenz & Kowalski - die beiden Herren sind euch höchstwahrscheinlich ein Begriff...), ich hab det Janze dann in Delphi umgeschrieben

Gruß, Marco
Marco
Wo ein Wille ist, ist auch ein Weg. Aber wo ein Weg ist, ist nicht unbedingt auch ein Wille...
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#7

Re: Zeit messen

  Alt 3. Jun 2005, 15:50
soooooo verpennt bin ich im Moment auch nicht:
Zitat:
da die Zeiten von zwei Verschiedenen Rechnern verglichen werden müssen.
Und der PerformanceCounter funktioniert über den Takt der CPU - nicht über die Systemuhr.

Soweit ich weiß, sind Millisekunden die kleinste Einheit, die die Systemuhr wiedegeben kann. Von daher bin ich damit schon ganz zufrieden
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: Zeit messen

  Alt 3. Jun 2005, 15:52
Zitat von SleepyMaster:
ok... Hab eine Lösung, die sogar auf die Milisekunde genau ist...
Sei vorsichtig mit dem TTimer, da dieser eben NICHT auf die Millisekunde genau ist. Das liegt daran, dass der TTimer in einem Thread steht, der eine recht niedrige Priorität hat (also nur einen begrenzten Teil Rechenleistung kriegt). Der DXTimer ist jedoch genauer (über 1 Millisekunde genau)
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#9

Re: Zeit messen

  Alt 3. Jun 2005, 15:53
Zitat von Marphy:
Mittels der Unit "PrecTimer" kannst du ultra-genaue Zeitmessungen durchführen
Gruß, Marco
das ergebnis wird zwar genauer ausgegeben ist aber genauso ungenau

es kommt nicht drauf an wieviele nachkommastellen da sind sondern wieviele andere threads zwischenzeitlich arbeiten.
um eine routine zu testen und zu schaun ob die schneller ist sollte man deshalb alle anderen threadsd einfrierren und RDTSC (assembler ticks) nehmen
soll nur eine auf > 200msek getestet werden kannste gettickccount bzw QPC nehmen
QPC im bereich 20msek bis 200mseksollte QPC genommen werden
< 20msek geben beide total beschissenen werte zurück die net wirklich stimmen

zum RDTSC verfahren:
http://www.delphi-forum.de/viewtopic...ighlight=rdtsc
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#10

Re: Zeit messen

  Alt 3. Jun 2005, 15:59
@malo: Hast schon recht... ABER: wenn du mal genau hinguckst siehst du, dass ich den Timer nur benutze um einen Intervall zu erzeugen in dem die Zeit aktuallisiert wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:54 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