GNT sans publicité, site mobile, fonctionnalitées exclusives...

[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>
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc Boyer
Le #389313
Thomas Baruchel wrote:
Bonjour,
Y aurait-il un moyen portable d'afficher désormais
les fractions de seconde.


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 :-(

Thomas Nemeth
Le #389312
Le mar 07 oct 2003 à 14:52, Thomas Baruchel a tapoté :
| 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
Publicité
Suivre les réponses
Poster une réponse
Anonyme