Genauer Timestamp
-
Ich würde gerne einen möglichst genauen Timestamp in C++ haben.
Der sollte, wenn möglich genauer als
timeGetTime();sein, und in etwa so aussehen:
00000000 0.00000000 00000001 0.00093431 00000002 0.00095811 00000003 0.00100801 00000004 0.00120151 00000005 0.00198363 00000006 0.00211812 00000007 0.00224635 00000008 0.00236546 00000009 0.00259034Das davor ist einfach nur eine Zeilennummerierung.
0.xxxxxxxx -> Die Null. sind Sekunden.Habe mir hier auch schon viele Threads zu "genauer Zeitmessung" und so durchgelesen, habe das aber noch nicht so hinbekommen.
MfG, Thindia80
-
"Genau" hängt immer stark vom Einsatzzweck ab.
Sag uns, was du vorhast, und wir sagen dir, was sinnvoll zu nutzen wäre.
-
Ich würde gerne die Ausführungszeit meiner Programme in Sekunden testen.
Am besten auf die 8. Nachkommastelle genau. Deswegen suche ich eine Routine, die im Großen und Ganzen das Selbe wie timeGetTime(); macht, nur viel genauer, also auf die 8. Nachkommastelle genau.MfG, Thindia80
-
Solange den Thread nicht auf andere Kerne hüpft, ist rdtsc dein Freund mit 9 Nachkommastellen.
-
Ja. Bei Benutzung mehrerer Kerne ist es nicht mehr verlässlich. Dann helfen dir auch die 9 Nachkommastellen nicht mehr.
-
Ich habe das Ganze jetzt bemerkenswert genau mit deiner Lösung aus http://www.c-plusplus.net/forum/viewtopic-var-t-is-232829-and-highlight-is-rdtsc.html#1653493 gelöst.
Vielen Dank nochmal.
Ciao, Thindia80
-
warum hat niemand QueryPerformanceCounter genannt?
-
frage^ schrieb:
warum hat niemand QueryPerformanceCounter genannt?
Naja, wenn man dazu auch campers Prozessbindungstricks von
http://www.c-plusplus.net/forum/viewtopic-var-t-is-252421-and-postdays-is-0-and-postorder-is-asc-and-start-is-10.html
verwendet, ist rdtsc vermutlich unschlagbar für Meßzwecke.
-
frage^ schrieb:
warum hat niemand QueryPerformanceCounter genannt?
ja komisch, vor allem weil RDTSC auf den heutigen, weit verbreiteten multicore-kisten, ziemlich unzuverlässig sein kann: http://msdn.microsoft.com/en-us/library/ee417693(VS.85).aspx
