Maison >développement back-end >C++ >Quelle est la meilleure façon de mesurer le temps d'exécution des fonctions C sous Linux ?
Meilleure façon de mesurer le temps d'exécution d'une fonction en C sous Linux
Mesurer le temps d'exécution d'une fonction est crucial pour l'analyse et l'optimisation des performances dans Programmes C. Cet article explique comment déterminer efficacement le temps d'exécution d'une fonction sur un système Linux.
Utiliser boost::chrono pour mesurer le temps CPU
Pendant le boost :: La bibliothèque chrono fournit diverses fonctions liées au temps, elle n'est pas recommandée pour mesurer le temps d'exécution d'une fonction spécifique. La fonction process_user_cpu_clock mesure le temps utilisateur-CPU passé par le processus en cours, ce qui peut ne pas représenter avec précision le temps d'exécution de la fonction, en particulier dans un environnement multithread.
Solution : std::chrono
L'approche recommandée pour mesurer le temps d'exécution d'une fonction consiste à utiliser la bibliothèque std::chrono introduite dans C 11. Elle fournit des mesures de temps précises via std::chrono::high_resolution_clock.
Voici un exemple de la façon de mesurer le temps d'exécution d'une fonction à l'aide de std::chrono::high_resolution_clock:
#include <chrono> #include <iostream> #include <thread> void long_operation() { std::this_thread::sleep_for(150ms); // Simulating a long operation } int main() { auto t1 = std::chrono::high_resolution_clock::now(); long_operation(); auto t2 = std::chrono::high_resolution_clock::now(); auto ms_int = std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1); std::cout << ms_int.count() << "ms\n"; return 0; }
Ce code démontre la mesure du temps d'exécution de la fonction long_operation. Il imprime le temps d'exécution en millisecondes.
Notes supplémentaires
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!