[C] afficher le temps mis par une fonction
Le
thomas.baruchel
Bonjour,
j'avais l'habitude de mettre dans mon code c une option
#define WITH_DEBUG
dont le but essentiel était d'afficher la durée mise par une fonction
pour comparer plusieurs implémentations différentes de la même fonction
ou pour une recherche quelconque d'optimisation. J'utilisais simplement
time(NULL) sur mon vieil ordinateur qui était un 70Mhz. Maintenant que
je suis passé à quelque chose de plus rapide, le résultat n'est plus très
significatif (les fonctions en question mettant par exemple deux secondes
pour s'exécuter). Y aurait-il un moyen portable d'afficher désormais
les fractions de seconde. Le vieux code était:
#ifdef WITH_DEBUG
auto time_t t = time(NULL);
#endif
#ifdef WITH_DEBUG
fprintf(stderr,"Time: %d sec.",time(NULL)-t);
#endif
Cordialement,
--
« nous devons agir comme si la chose qui peut-être ne sera pas devait
être » (Kant, Métaphysique des moeurs, doctrine du droit, II conclusion)
Thomas Baruchel <baruchel@laposte.net>
j'avais l'habitude de mettre dans mon code c une option
#define WITH_DEBUG
dont le but essentiel était d'afficher la durée mise par une fonction
pour comparer plusieurs implémentations différentes de la même fonction
ou pour une recherche quelconque d'optimisation. J'utilisais simplement
time(NULL) sur mon vieil ordinateur qui était un 70Mhz. Maintenant que
je suis passé à quelque chose de plus rapide, le résultat n'est plus très
significatif (les fonctions en question mettant par exemple deux secondes
pour s'exécuter). Y aurait-il un moyen portable d'afficher désormais
les fractions de seconde. Le vieux code était:
#ifdef WITH_DEBUG
auto time_t t = time(NULL);
#endif
#ifdef WITH_DEBUG
fprintf(stderr,"Time: %d sec.",time(NULL)-t);
#endif
Cordialement,
--
« nous devons agir comme si la chose qui peut-être ne sera pas devait
être » (Kant, Métaphysique des moeurs, doctrine du droit, II conclusion)
Thomas Baruchel <baruchel@laposte.net>

Poser une question


gettimeofday permet de coder des microsecondes.
C'est globalement au delà de la précision de l'OS (en général).
Ceci dit, si l'objectif c'est de savoir ce qui prend
du temps dans ton code, pourquoi ne pas utiliser des outils
faits pour (genre gprof).
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
| Bonjour,
Salut.
| j'avais l'habitude de mettre dans mon code c une option
| #define WITH_DEBUG
| dont le but essentiel était d'afficher la durée mise par une fonction
| pour comparer plusieurs implémentations différentes de la même fonction
| ou pour une recherche quelconque d'optimisation. J'utilisais simplement
| time(NULL) sur mon vieil ordinateur qui était un 70Mhz. Maintenant que
| je suis passé à quelque chose de plus rapide, le résultat n'est plus très
| significatif (les fonctions en question mettant par exemple deux secondes
| pour s'exécuter). Y aurait-il un moyen portable d'afficher désormais
| les fractions de seconde. Le vieux code était:
Pour des trucs assez précis, j'utilise plutôt
TimeVal t;
gettimeofday(&t, NULL);
avec la fonction :
long diff_time(TimeVal t1, TimeVal t2) {
long ds = t2.tv_sec - t1.tv_sec;
long du = t2.tv_usec - t1.tv_usec;
return du + 1000000*ds;
}
Thomas
--
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
-+- Bart Simpson on chalkboard in episode BABF02