Entwickler-Ecke

Windows API - Zeiteinheit kleiner als ms (Nanosekunden)


Jakane - Do 28.03.13 13:05
Titel: Zeiteinheit kleiner als ms (Nanosekunden)
Hallo Delphi-Helfer :)

es gibt eine schöne Funktion (FormatDateTime('dd.mm.yyyy hh:mm:ss:zzz', Now)), die geht auf Millisekunden runter.
Ich brauche auch noch eine Zeiteinheit kleiner.

Ich habe eine Schleife die einige Tausend Mal etwas durchlaufen muss und will diese Optimieren.
Dazu muss ich wissen wo genau die Zeitverzögerungen sind.
Wenn mein Memo allerdings am Ende 20-30mal die selbe Zeit anzeigt, weil die Diferenz im Nano-Bereich liegt, komm ich an diese Info nicht ran :(

Hoffe jemand hat eine Idee. Google hat mir nicht wirklich geholfen ^^

Danke


jfheins - Do 28.03.13 13:15

Hallo,
so zwei Punkte dir mir einfallen:
1. Kennst du QueryPerformanceCounter?
2. Könntest du die Schleife nicht einfach 100.000 mal durchlaufen lassen?


Jakane - Do 28.03.13 13:38

user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
so zwei Punkte dir mir einfallen:
1. Kennst du QueryPerformanceCounter?
2. Könntest du die Schleife nicht einfach 100.000 mal durchlaufen lassen?


1. Nein, aber werd ich mal Googeln
2. hab ich versucht aber die millisekunden sind zu unterschiedlich um genaueres festzustellen
mal ist der sprung am anfang, mal am ende


EDIT: funktioniert prima ^^
Danke


Gerd Kayser - Do 28.03.13 13:53

Wäre hier nicht der Einsatz eines Profiler-Tools sinnvoll?


Jakane - Do 28.03.13 13:55

user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
Wäre hier nicht der Einsatz eines Profiler-Tools sinnvoll?


klingt nach extra programm...
nein danke ^^ bin mit der 1. lösung sehr zufrieden


jaenicke - Do 28.03.13 14:10

Solche Messungen sind auch nicht 100%ig genau, d.h. wenn die Zeiten zu klein sind, kannst du das so gar nicht messen. Auch wenn der Performance-Counter sehr genau ist.


Gerd Kayser - Do 28.03.13 14:21

user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:
klingt nach extra programm...

Nun ja, man kann auch ein Treppenhaus entweder mit einem großem Schrubber oder nur mit einer Zahnbürste schrubben... :)
Dieser Profiler hier http://www.prodelphi.de/indexpd.htm misst in der Freeware-Version bis zu 20 Prozeduren. Aber unbedingt vorher ein Backup des Projektverzeichnisses machen, weil vom Programm zur Messung einige Einträge im Quellcode gemacht werden.