[C] Librairie BC 3.1 pour chronomètrer du code?

Librairie BC 3.1 pour chronomètrer du code? [C] - C - Programmation

Marsh Posté le 06-10-2006 à 12:19:40    

Pour optimiser un vieux code C je me suis fait une petite librarie chrono avec un ChronoStart(), ChronoEllapsed().
 
Dans le code existant ça donne:

Code :
  1. #include "monChrono.h"
  2. ...
  3.    ChronoStart();
  4.    ... du vieux code qui tourne...
  5.    printf( " Temps d'exécution: %f \n", ChronoEllapsed());
  6. ...


 
Ma librairie utilise la fonction clock(), mais je me suis aperçu après coup que la résolution n'est finalement que de 5 centièmes de secondes, tout ce qui est inférieur est zappé et je renvoie un gros zéro...  
 
bref, j'ai plus de zéro qu'autre chose dans mes résultats vu que même sur une vieille bécane le C ça trace...
 
J'ai déjà trouvé des librairies de 'code timing' sur le net mais rien de simple pour l'instant... ça part direct dans du code assembleur et dans les interruptions, des trucs pas très portables finalement.  
 
Alors, tout ça pour lire l'heure au millième de secondes près?  
 

Reply

Marsh Posté le 06-10-2006 à 12:19:40   

Reply

Marsh Posté le 06-10-2006 à 23:30:45    

avander a écrit :

Ma librairie utilise la fonction clock(), mais je me suis aperçu après coup que la résolution n'est finalement que de 5 centièmes de secondes, tout ce qui est inférieur est zappé et je renvoie un gros zéro...  


55ms, plus précisément...  
 
Pour avoir une meilleure précision, soit on réduit l'unité de temps (pas possible ici), soit on multiplie les tests (et on fait une jolie division). Ca, c'est possible...


---------------
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 06-10-2006 à 23:41:49    

Sinon, il y a QueryPerformanceCounter/QueryPerformanceFrequency sous Windows et gettimeofday sous Linux...

Reply

Marsh Posté le 07-10-2006 à 09:24:32    

spotaszn a écrit :

Sinon, il y a QueryPerformanceCounter/QueryPerformanceFrequency sous Windows et gettimeofday sous Linux...


Si le gars utilise Borland C 3.1, c'est sans doute parce qu'il est sous DOS...

Message cité 2 fois
Message édité par Emmanuel Delahaye le 07-10-2006 à 09:24:49

---------------
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 07-10-2006 à 19:56:10    

Emmanuel Delahaye a écrit :

Si le gars utilise Borland C 3.1, c'est sans doute parce qu'il est sous DOS...


 
Alors désolé pour le hors sujet, je ne connais pas trop les compilos C de Borland...

Reply

Marsh Posté le 09-10-2006 à 11:06:09    

Emmanuel Delahaye a écrit :

Si le gars utilise Borland C 3.1, c'est sans doute parce qu'il est sous DOS...


 
Gagné! C'était le temps ou il fallait tout faire soi-même...  

Reply

Marsh Posté le 09-10-2006 à 12:27:59    

Sous DOS, j'utilisais RDTSC (en assembleur)...

Reply

Marsh Posté le 09-10-2006 à 12:47:22    

Oui, oui, mais je suis une bille en assembleur...  :ange:  
 
maintenant si vous avez un bout de code qui marche en BC 3.1 pourquoi pas!

Reply

Sujets relatifs:

Leave a Replay

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