Also ich möchte gerne eine sehr genaue Zeitmessung haben. Bisher verwende ich clock(); die bingt mir aber nur genauigkeit von einer Hundertstel schön wäre Millisekunden oder Microsekunden. Ich will damit bestimmte Programmläufe auf ihre schnelligkeit testen. Ich habe schon von gettimeofday(); und PerfomanceFrequenzy oder so gehört. Könntet ihr mir ein gutes Beispiel geben wo mit ich eine sehr genau Zeitmessung durchführen kann? Wäre echt lieb.
Wenn ich jetzt ne for schleife mache mit 100 wiederholungen bekomme ich ca. 30625,2 raus. Nun möcht ich gerne wissen was für ein Wert es ist also ob Millisekunden oder so.
so wie ichs gepostet hab ist die einheit sekunden... eine schleife von 0 bis 100 brauch bei mir ca ne microsekunde (wobei ich eher nicht sagen würde das du damit in den genaugkeitsbereich von ner microsekunde kommst aber ne 1/10 millisekunde sollte drin sein)... -- ...fleißig wie zwei WeißbroteDieser Post wurde am 20.03.2005 um 21:15 Uhr von Windalf editiert.
Irgendwie schein ich da nich ganz alles zu peilen. Also wenn ich jetzt ne for schleife von 1 bis 100.000 mache und beim Compiler (Dev-C++) Kompilieren+ausführen mache zeigt er 31431,7 (variert) an. Wenn ich allerdings die Kompilierte exe starte gib er -2,39883e+012 an. Bin noch nich so gut in C++ könntest du mir sagen wie das zu stande kommt? Außerdem würd ich gerne wissen wie ich ne Ausgabe a la 1,23456789 Sekunden bekomme. Wäre dir sehr Verbunden.
Hier der Quellcode der is nurfür test zwecke ich wil wenn ich endlich mal das prinzip erkenne damit bestimmte codes auf die schnelligkeit der ausführung testen:
C++:
#include<iostream> #include <windows.h>
usingnamespace std;
int main() { LONGLONG Frequency, CurrentTime, LastTime; double TimeElapsed, TimeScale; QueryPerformanceFrequency( (LARGE_INTEGER*) &Frequency); TimeScale = 1.0/Frequency; int i; for(i=0;i<=100000;i++) { cout << i <<endl; }
du musst natürlich erst einemal in LastTime die startzeit merken an sonsten steht in LastTime irgend zufallswert... manchmal ist es hilfreich warnings nicht zu ignorieren -- ...fleißig wie zwei Weißbrote