AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zeitmessung(ms) auf mehreren Stellen nach dem Komma
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitmessung(ms) auf mehreren Stellen nach dem Komma

Ein Thema von Kuonrat · begonnen am 5. Okt 2007 · letzter Beitrag vom 5. Okt 2007
Antwort Antwort
Kuonrat

Registriert seit: 27. Okt 2006
Ort: Berlin
33 Beiträge
 
#1

Zeitmessung(ms) auf mehreren Stellen nach dem Komma

  Alt 5. Okt 2007, 00:35
Mit QueryPerformanceFrequency und QueryPerformanceCounter ist es ja möglich, in hoher Auflösung die Prozesse zu messen.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  a, b, c: Int64;
begin
  QueryPerformanceFrequency(a);
  QueryPerformanceCounter(b);
 
  //Befehlesfolge deren Zeitdauer bestimmt werden soll

  QueryPerformanceCounter(c);
 
  Caption := IntToStr((c - b) * 1000 div a); //Ausgabe in ms
end;
Da mir aber nur diese Variante bekannt ist, würde es mich interessieren, ob man auch die Zeit mit Angaben nach dem Komma machen kann. Oft sind nämlich die Ergebnisse bei mir 0ms. Ich verstehe nämlich noch nicht ganz, wie diese Rechnung mit div a funktioniert. Ich weiß nur, das a, in dem Fall hier, die Anzahl der "Ticks" pro ms sind. *shrug*
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma

  Alt 5. Okt 2007, 00:48
FloatToStr((c - b) * 1000 / a)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Kuonrat

Registriert seit: 27. Okt 2006
Ort: Berlin
33 Beiträge
 
#3

Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma

  Alt 5. Okt 2007, 00:56
Ja, aber ich kann ja auf einen Integer keine Divison anwenden, weil der keine Nachkommastellen besitzt. Aber ich kann aus dem Int64 auch kein Real machen, weil QueryPerformanceCounter verlangt ein Int64.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma

  Alt 5. Okt 2007, 01:04
doch, kannst du.
der "/" Operator ist auch bei Integerwerten anwendbar. das Ergebnis ist ein Float-Wert
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Kuonrat

Registriert seit: 27. Okt 2006
Ort: Berlin
33 Beiträge
 
#5

Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma

  Alt 5. Okt 2007, 01:09
Ach na klar, jetzt funktioniert es. Danke.. Bin schon etwas müde hehe.
  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 06:37 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