Entwickler-Ecke

Programmierwerkzeuge - Tool zur Geschwindigkeits-/Schnelligkeitsmessung


Johannes Maier - Sa 13.11.04 12:05
Titel: Tool zur Geschwindigkeits-/Schnelligkeitsmessung
Hallo,

gibt es bestimmte Tools, die messen, wie lange ein Programm braucht, bis es ausgeführt ist? Oder muss ich das irgendwie selbst timen?
Da ganze bräuchte ich, um herauszufinden, ob mit Assembler optimierte Codestellen die Geschwindigkeit relevant verändern. Wie macht ihr das, wenn ich irgendwo lese, "2,3 ms zur Berechnung gebraucht" oder so in der Art ;)

Danke schonmal im Voraus
Johannes


AXMD - Sa 13.11.04 12:14
Titel: Re: Tool zur Geschwindigkeits-/Schnelligkeitsmessung
Johannes Maier hat folgendes geschrieben:
Wie macht ihr das, wenn ich irgendwo lese, "2,3 ms zur Berechnung gebraucht"


Zu dieser Frage: QueryPerformanceCounter (o.ä.). Auf die erste Frage wüsst ich auf Anhieb keine Antwort

AXMD


BenBE - Sa 13.11.04 19:47

Das erstere kannst du dir relativ einfach bauen:

1. Programm:
Mit CreateProcess dein zu testendes Programm starten
Zeitmessung vor CreateProcess beginnen

2. Programm:
Im OnIdle-Ereignis sendest du an das erste Programm eine Windows-Message und deaktivierst damit die Zeitmessung. Im ersten Programm brauchst du dann nur noch die gemessene Zeit ausgeben.


Johannes Maier - So 14.11.04 11:38

OK danke für die Tipps. Da ich das QueryCounterDing nicht kenne, halte ich mich an Lösung zwei 8) Die hört sich auch nicht so schwer an :)


BenBE - So 14.11.04 21:15

Die zweite Möglichkeit ist auch nicht kompliziert


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
    T1,T2,T3:Int64;
begin
    QueryPerformanceCounter(T1);
    DoSomething;
    QueryPerformanceCounter(T2);
    QueryPerformanceFrequency(T3);
    Time := FloatToStr((T2-T1) / D3);
End;