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

Comment puis-je mesurer avec précision le temps d'exécution d'une fonction C ?

DDD
Libérer: 2024-12-28 02:26:14
original
705 Les gens l'ont consulté

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

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 :

  1. Définir une fonction pour time:
void timed_function() {
    // Your code to execute
}
Copier après la connexion
  1. Mesurez le temps d'exécution :
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;
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal