Was ist der beste und genaueste Timer in C ++?

7

Was ist der beste und genaueste Timer in C ++?

    
Josh Morrison 02.04.2011, 04:26
quelle

4 Antworten

12

Die Antwort darauf ist plattformspezifisch. Das Betriebssystem ist verantwortlich für die Verfolgung des Timings und folglich bietet die C ++ - Sprache selbst keine Sprachkonstrukte oder eingebaute Funktionen dafür.

Hier finden Sie jedoch einige Ressourcen für plattformabhängige Timer:

Eine plattformübergreifende Lösung könnte sein boost :: asio :: deadline_timer .

    
Nathan Osman 02.04.2011, 04:29
quelle
10

In C ++ 11 können Sie portabel zum höchsten Auflösung-Timer gelangen mit:

%Vor%

Beispielausgabe:

%Vor%

"chrono_io" ist eine Erweiterung, die E / A-Probleme mit diesen neuen Typen erleichtert und hier .

Es gibt auch eine Implementierung von <chrono> in Boost verfügbar (könnte immer noch auf der Spitze des Stammes sein, nicht sicher, dass es freigegeben wurde).

    
Howard Hinnant 02.04.2011 13:13
quelle
2

Unter Windows wäre QueryPerformanceCounter , obwohl Sie, da Sie keine Bedingungen angeben, einen externen Timer mit extrem hoher Auflösung haben können, der eine C ++ - Schnittstelle für den Treiber hat

    
Necrolis 02.04.2011 04:29
quelle
2

Der C ++ - Standard sagt nicht viel über die Zeit aus. Es gibt einige Funktionen, die von C über den Header <ctime> übernommen wurden.

Die Funktion clock ist die einzige Möglichkeit, eine Genauigkeit von unter einer Sekunde zu erhalten, aber die Genauigkeit kann so niedrig wie eine Sekunde sein (sie wird durch das Makro CLOCKS_PER_SEC definiert). Außerdem misst es überhaupt keine Echtzeit, sondern Prozessorzeit.

Die Funktion time misst Echtzeit, aber (normalerweise) nur auf die nächste Sekunde.

Um Echtzeit mit Sekundengenauigkeit zu messen, benötigen Sie eine nicht standardmäßige Bibliothek.

    
Potatoswatter 02.04.2011 04:40
quelle

Tags und Links