Maison >développement back-end >C++ >Comment mesurer le temps d'exécution d'une fonction C ?
En programmation C, mesurer le temps d'exécution d'une fonction peut être accompli efficacement. La bibliothèque Boost.Chrono propose la fonction process_user_cpu_clock(), qui capture le temps CPU utilisateur utilisé par le processus en cours. Cette fonction, ainsi que des méthodes alternatives, fournissent des informations précieuses pour l'optimisation des performances.
L'utilisation de process_user_cpu_clock() dans Boost.Chrono est simple. Voici un exemple :
#include <boost/chrono.hpp> #include <iostream> void long_operation() { // Simulating a long operation boost::chrono::process_user_cpu_clock timer; while (timer.seconds() < 1) { } } int main() { boost::chrono::process_user_cpu_clock start; long_operation(); boost::chrono::process_user_cpu_clock stop; std::cout << "Execution time: " << (stop - start).seconds() << " seconds" << std::endl; return 0; }
En C 11, std::chrono::high_resolution_clock() du Les deux méthodes offrent des mesures fiables. std::chrono::high_resolution_clock() est le choix préféré pour mesurer des durées de fonctions spécifiques. Boost.Chrono fournit des fonctionnalités supplémentaires, telles que la synchronisation des threads et les minuteries de contexte. En utilisant ces méthodes, les développeurs peuvent déterminer efficacement le temps d'exécution des fonctions, conduisant à des résultats bien optimisés et efficaces. Programmes C. 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!#include <chrono>
#include <iostream>
void long_operation() {
// Simulating a long operation
std::chrono::high_resolution_clock timer;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main() {
std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now();
long_operation();
std::chrono::high_resolution_clock::time_point stop = std::chrono::high_resolution_clock::now();
std::cout << "Execution time: " << std::chrono::duration_cast<std::chrono::milliseconds>(stop - start).count() << " milliseconds" << std::endl;
return 0;
}
Comparaison des performances
Conclusion