Maison > développement back-end > C++ > Comment obtenir un timing de haute précision en C sous Linux ?

Comment obtenir un timing de haute précision en C sous Linux ?

DDD
Libérer: 2024-11-09 17:20:02
original
1097 Les gens l'ont consulté

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

Synchronisation haute précision en C sous Linux

QueryPerformanceCounter de mmsystem.h fournit un minuteur haute résolution fiable sous Windows. Pour Linux, envisagez les alternatives suivantes :

  • Boost ptime :Une fonction de bibliothèque Boost qui renvoie des horodatages à la nanoseconde près.
  • POSIX clock_gettime() : Un appel système qui fournit des horodatages avec une précision variable en fonction du type d'horloge spécifié. Par exemple, CLOCK_MONOTONIC fournit un horodatage haute résolution à augmentation monotone.

Exemple de code utilisant 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;
}
Copier après la connexion

Exemple de code utilisant 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;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal