Wrap around the clock()

Wrap around the clock() - C - Programmation

Marsh Posté le 15-01-2007 à 15:31:13    

Bonjour,

 

J'ai un problème avec la fonction clock(). Je cherche à mesurer le temps de certaines parties de mon code avec clock() avec des clock() pour délimiter les temps. Par exemple je récupère le temps t1 en secondes :

Code :
  1. double t1 = (double)(Clock_2 - Clock_1)/CLOCKS_PER_SEC;


entre les instants clock1 et Clock2.

 

Le problème c'est que clock() fait des 'wrap-around' toutes les 36 minutes à peu près, et je mesure des temps qui sont supérieurs à 36 minutes. Donc ...c'est le bordel car la fonction clock() me retourne un chiffre négatif. Est ce que quelqu'un saurait comment contourner ce problème ? (je ne peux pas mettre plus de clock() ) Y'aurait-il une autre fonction ou librairie à utiliser pour mesurer des temps "longs" ???

 


merci par avance  [:arg]


Message édité par in_your_phion le 15-01-2007 à 15:35:55
Reply

Marsh Posté le 15-01-2007 à 15:31:13   

Reply

Marsh Posté le 15-01-2007 à 17:16:40    

Ben y a la fonction time (http://www.linux-kheops.com/doc/ma [...] ime.2.html) qui compte en secondes...

Message cité 1 fois
Message édité par breizhbugs le 15-01-2007 à 17:16:59
Reply

Marsh Posté le 15-01-2007 à 17:59:23    

breizhbugs a écrit :

Ben y a la fonction time (http://www.linux-kheops.com/doc/ma [...] ime.2.html) qui compte en secondes...


Ben non. time() mesure du temps de 'wall clock', c'est à dire du temps de pendule, et non du temps de consommation CPU comme le fait clock().
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 15-01-2007 à 18:49:29    

déja passe en unsigned (enfin en clock_t) tu aura 72min et pas 36.

Message cité 1 fois
Message édité par 0x90 le 15-01-2007 à 18:49:36

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 16-01-2007 à 01:24:08    

0x90 a écrit :

déja passe en unsigned (enfin en clock_t) tu aura 72min et pas 36.


 
je vais essayer ça, merci  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed