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

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

DDD
DDDOriginal
2024-11-09 17:20:021000Durchsuche

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;
}

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;
}

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!

Stellungnahme:
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