Maison >développement back-end >C++ >Comment mesurer le temps d'exécution d'une fonction C ?

Comment mesurer le temps d'exécution d'une fonction C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-22 17:01:13157parcourir

How Can I Measure the Execution Time of a C   Function?

Détermination du temps d'exécution d'une fonction en 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.

Mesurer le temps CPU avec Boost.Chrono

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;
}

Méthodes de mesure alternatives

En C 11, std::chrono::high_resolution_clock() du l'en-tête fournit une minuterie haute résolution. Le code suivant illustre son utilisation :

#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

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.

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn