Maison >développement back-end >C++ >Comment puis-je mesurer avec précision le temps écoulé en C et C ?
Mesure efficace du temps écoulé en C et C
Mesurer le temps écoulé avec précision est crucial pour l'analyse des performances en programmation. Cependant, la fonction C standard time() peut ne pas être fiable pour les tâches de courte durée.
Utilisation de gettimeofday() en C
Pour résoudre ce problème, les programmeurs C peuvent utilisez la fonction gettimeofday(), qui renvoie l'heure actuelle avec une précision de la microseconde. Voici un exemple :
#include <sys/time.h> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);
Utilisation de std::chrono en C
En C , la bibliothèque std::chrono fournit une solution plus moderne et portable pour mesurer temps écoulé. Prenons cet exemple :
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double, nano> diff = end - begin; cout << "Time taken: " << diff.count() << " nanoseconds" << endl;
Comprendre les résultats
La sortie de gettimeofday() et std::chrono renverra une différence de temps en secondes et microsecondes/ nanosecondes. Par exemple :
Dans le premier exemple, le temps écoulé est de 4,025 secondes, tandis que dans le second Par exemple, il s'agit de 0,026339 seconde. Notez que std::chrono renvoie les nanosecondes par défaut, vous devrez donc peut-être les convertir manuellement en microsecondes ou en secondes si vous le souhaitez.
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!