Heim > Backend-Entwicklung > C++ > Wie erreicht man in C unter Linux ein hochpräzises Timing?

Wie erreicht man in C unter Linux ein hochpräzises Timing?

DDD
Freigeben: 2024-11-09 17:20:02
Original
1056 Leute haben es durchsucht

How to Achieve High-Precision Timing in C   on Linux?

Hochpräzises Timing in C unter Linux

QueryPerformanceCounter von mmsystem.h bietet einen zuverlässigen hochauflösenden Timer in Windows. Erwägen Sie für Linux die folgenden Alternativen:

  • Boost ptime: Eine Boost-Bibliotheksfunktion, die Zeitstempel mit Nanosekundengenauigkeit zurückgibt.
  • POSIX clock_gettime() : Ein Systemaufruf, der Zeitstempel mit unterschiedlicher Genauigkeit basierend auf dem angegebenen Uhrentyp bereitstellt. Beispielsweise stellt CLOCK_MONOTONIC einen hochauflösenden, monoton steigenden Zeitstempel bereit.

Codebeispiel mit ptime:

#include <iostream>
#include <boost/chrono/system_clocks.hpp>

using namespace std;
using namespace boost::chrono;

int main() {
  auto now = system_clock::now();
  nanoseconds ts = duration_cast<nanoseconds>(now - system_clock::from_time_t(0));
  
  cout << "Timestamp: " << ts.count() << " nanoseconds" << endl;
  
  return 0;
}
Nach dem Login kopieren

Codebeispiel mit clock_gettime ():

#include <iostream>
#include <time.h>

using namespace std;

int main() {
  timespec ts;
  
  clock_gettime(CLOCK_MONOTONIC, &ts);
  
  cout << "Timestamp: " << ts.tv_sec << " seconds, "
       << ts.tv_nsec << " nanoseconds" << endl;
  
  return 0;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erreicht man in C unter Linux ein hochpräzises Timing?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage