Mesurer le temps d'exécution d'une fonction en C
En C, mesurer avec précision le temps d'exécution d'une fonction peut être difficile en raison de la charge du système variantes. Cela peut conduire à des résultats peu fiables lors de l'utilisation de méthodes standard telles que std::chrono::system_clock::now().
Approche alternative utilisant Boost.Chrono
Le Boost La bibliothèque .Chrono fournit une méthode plus précise pour mesurer le temps d'exécution des fonctions. Plus précisément, la fonction process_user_cpu_clock capture le temps CPU passé par le processus en cours.
Utilisation de process_user_cpu_clock
Pour utiliser process_user_cpu_clock, incluez l'en-tête chrono et suivez ces étapes :
void timed_function() { // Your code to execute }
using namespace boost::chrono; duration<double, std::milli> elapsed; auto start = process_user_cpu_clock(); timed_function(); auto end = process_user_cpu_clock(); elapsed = end - start;
La variable écoulée contiendra la durée de la fonction chronométrée en millisecondes.
Horloge haute résolution en C 11
Si vous utilisez C 11 ou une version ultérieure, vous pouvez également utiliser std::chrono::high_resolution_clock pour un timing précis. L'utilisation est similaire à Boost.Chrono, comme démontré dans l'exemple suivant :
using namespace std::chrono; using ms = milliseconds; auto t1 = high_resolution_clock::now(); timed_function(); auto t2 = high_resolution_clock::now(); duration<ms> elapsed = t2 - t1;
Comparaison de vitesse
En utilisant Boost.Chrono ou std::chrono ::high_resolution_clock, vous pouvez mesurer et comparer avec précision les temps d'exécution des fonctions pour déterminer leurs vitesses relatives.
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!