![]() |
Zeitmessung(ms) auf mehreren Stellen nach dem Komma
Mit QueryPerformanceFrequency und QueryPerformanceCounter ist es ja möglich, in hoher Auflösung die Prozesse zu messen.
Delphi-Quellcode:
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*
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; |
Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma
FloatToStr((c - b) * 1000 / a)
|
Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma
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.
|
Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma
doch, kannst du.
der "/" Operator ist auch bei Integerwerten anwendbar. das Ergebnis ist ein Float-Wert |
Re: Zeitmessung(ms) auf mehreren Stellen nach dem Komma
Ach na klar, jetzt funktioniert es. Danke.. Bin schon etwas müde hehe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz