Maison >développement back-end >C++ >Comment puis-je mesurer avec précision le temps d'exécution du code en C ?
Mesurer le temps d'exécution avec précision en C
Une mesure précise du temps d'exécution est essentielle pour optimiser les performances du code. En C , la fonction clock() fournit un moyen de calculer le temps écoulé. Cependant, il peut renvoyer des résultats peu fiables avec des extraits de code courts.
Limitations de clock()
Pour les petites entrées ou les instructions sur une seule ligne, clock() signale souvent l'exécution des temps de "0 seconde". Cet écart est dû au fait que la fonction clock() a une granularité de millisecondes ou de nanosecondes, selon le système. Pour les durées d'exécution plus courtes que cette granularité, clock() arrondit à zéro.
Solution : Utiliser GetTimeMs64()
Pour surmonter cette limitation, pensez à utiliser la fonction utilitaire GetTimeMs64(). Cette fonction mesure avec précision le temps écoulé depuis l'époque Unix, en millisecondes, et fonctionne sur les plates-formes Windows et Linux.
La fonction GetTimeMs64() utilise l'horloge système sous Windows à l'aide de GetSystemTimeAsFileTime(). Sous Linux, il utilise gettimeofday() pour récupérer l'heure actuelle. Il convertit les valeurs obtenues en millisecondes et soustrait le décalage de l'époque Unix pour s'aligner sur la norme horaire Unix.
Implémentation
Pour utiliser GetTimeMs64(), incluez simplement le code suivant dans votre programme :
#include <Windows.h> // or #include <sys/time.h> #include <ctime> uint64 GetTimeMs64() { // Code from provided solution goes here }
Pour calculer le temps d'exécution d'un code extrait :
Exemple d'utilisation :
uint64 startTime = GetTimeMs64(); // Your code here uint64 endTime = GetTimeMs64(); cout << "Execution time: " << (endTime - startTime) / 1000.0 << " seconds" << endl;
Cette méthode fournit des mesures précises du temps d'exécution, même pour de petits extraits de code ou des instructions courtes. Il permet aux développeurs d'optimiser leur code efficacement et d'évaluer avec précision les améliorations de performances.
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!