Maison > développement back-end > C++ > Comment puis-je mesurer avec précision le temps écoulé en C ?

Comment puis-je mesurer avec précision le temps écoulé en C ?

Patricia Arquette
Libérer: 2024-12-30 15:41:10
original
554 Les gens l'ont consulté

How Can I Accurately Measure Elapsed Time in C  ?

Mesurer facilement le temps écoulé

Pour mesurer avec précision le temps écoulé des segments de programme, des alternatives sont disponibles à la fonction time(), moins précise.

Utiliser gettimeofday()

Comme montré dans le code fourni, gettimeofday() offre une précision de minuterie jusqu'à la microseconde. En calculant la différence entre une mesure de l'heure de début et de fin, vous pouvez obtenir des valeurs de temps écoulé.

Interprétation des résultats

Interprétation de la valeur temporelle :

  • temps pris = 0 26339 :Représente 26 339 microsecondes, soit environ 26,339 millisecondes.
  • temps pris = 4 45025 :Représente 4 secondes et 45,025 millisecondes.

Approche C 11

Une approche plus moderne et précise utilise le C 11 library:

  • std::chrono::steady_clock::now() : récupère l'heure actuelle avec une précision de la nanoseconde.
  • duration_cast : Convertit le décalage horaire dans l'unité souhaitée (par exemple, microsecondes ou nanosecondes).

Exemple de code

// C++11 Style:
#include <chrono>

std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();

std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << "[µs]" << std::endl;
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[ns]" << std::endl;
Copier après la connexion

Ce code calcule la différence de temps en microsecondes et en nanosecondes, offrant des mesures plus précises que time() ou gettimeofday().

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal