J'essayais de mesurer le temps nécessaire pour exécuter une fonction spécifique dans mon code. Dans un premier temps je la fonction clock()
comme ci-dessousDifférence de temps mesurée par clock et steady_clock
clock_t start = clock();
do_something();
clock_t end = clock();
printf("Time taken: %f ms\n", ((double) end - start)*1000/CLOCKS_PER_SEC);
Plus tard, je lisais à propos de la bibliothèque chrono
dans C++11
et essayé de mesurer la même chose avec un std::chrono::steady_clock
comme ci-dessous
using namespace std::chrono;
auto start = steady_clock::now();
do_something();
auto end = steady_clock::now();
printf("Time taken: %lld ms\n", duration_cast<milliseconds>(end - start).count());
Le temps mesuré par le premier code l'extrait (utilisant clock
) était 89.53 ms
et celui mesuré par steady_clock
était 1140 ms
.
Pourquoi y a-t-il une aussi grande différence de temps mesurée par les deux horloges?
Si possible, pourriez-vous créer un [mcve] s'il vous plaît? – Rakete1111
@ Rakete1111: Voici le [lien] (http://coliru.stacked-crooked.com/a/9f74e57079978629) à un petit test où le problème est reproductible. –