std:chrono mit niedriger realer Auflösung
-
Die Auflösung ist bei allen 3 Clocks die selbe. high_resolution_clock ist bei MS nur ein typedef auf system_clock. Egal welche Clock ich nehme ich bekome überall diese extrem grobe Auflösung. Sieht fats so aus als biegt MS das ganze intern auf die sehr ungenauen Standard Windowstimer um.
-
Ich hab mir das das letzte mal mit irgendeinem Release-Candidate angesehen. Da wurde für alles die Windows Systemzeit hergenommen (IIRC einfach
GetSystemTimeAsFileTime).
Ich gehe davon aus dass das immer noch so ist.Ist natürlich fürchterlich. Vor allem auch weil es für die drei verschiedenen Standard-Clocks unter Windows auch jeweils eine gut passende API gäbe.
(QueryPerformanceCounter für die high resolution Clock und GetTickCount/GetTickCount64 für die steady clock).Wenn du ein Ticket auf Connect aufmachst bekommst du auf jeden Fall ne Stimme von mir...
-
Dadurch das Microsoft die Implementierung versaut hat, ist chrono eigentlich nutzlos geworden.
-
portable progamer schrieb:
Dadurch das Microsoft die Implementierung versaut hat, ist chrono eigentlich nutzlos geworden.
Muss ja nicht auf ewig so bleiben.
-
Also ich hab alles was clocks benutzt (z.B. ne stopwatch) einfach auf die Clock getemplated und mir QueryPerformanceCounter in ein Clock-Interface gesteckt. Dann kann ich einfach das Template-Argument ändern, sollte sich Microsoft mal entscheiden eine ordentliche Implementierung zu benutzen.
-
Sie haben aufgrund wichtigerer Bugs vorerst keine Zeit, das zu beheben.

Die momentane Alternative ist Boost.Chrono. So kann man später mit minimalen API-Änderungen Std.Chrono benutzen.
-
Sowas finde ich immer interessant. Ich meine, ich will dem guten STL sicher nicht unterstellen Leute hinhalten zu wollen, aber den Bug hätte man auch so in etwa in der Zeit fixen können, in der er diese lange Antwort geschrieben hat. Ich versteh's nicht.

-
cooky451 schrieb:
Also ich hab alles was clocks benutzt (z.B. ne stopwatch) einfach auf die Clock getemplated und mir QueryPerformanceCounter in ein Clock-Interface gesteckt. Dann kann ich einfach das Template-Argument ändern, sollte sich Microsoft mal entscheiden eine ordentliche Implementierung zu benutzen.
Also ich hab alles, was die Standardbibliothek benutzt, auf eine Eigenimplementation getemplated. So habe ich die grösste Flexibilität und hänge nicht von Bugs in minderwertigen Implementationen (z.B. von Microsoft) ab.
-
Sehr gut.

-
Danke für die Information dazu. Bleib ich also erstmal bei meinem Counter.