[Dcmlib] clock vs times

Jean-Pierre Roux jpr at creatis.insa-lyon.fr
Wed May 4 11:25:35 CEST 2005


Bonjour.

Qq'un saurait-il s'il existe en fonction C qui donne le temps d'exec 
d'un bout de code?

- Deux appels de clock(), ca marche bien tant qu'on veut, par exemple 
voir le temps d'exec d'une methode de tri (on voit facilement que trier
100 millions d'enregistrement, c'est plus long qu'en trier 10 milions)
S'il y a des I/O disque, c'est carrement moins terrible ....

- deux appels de times() 
   
 #include <sys/times.h>
  clock_t times(struct tms *buf);
       struct tms {
              clock_t tms_utime;  /* user time */
              clock_t tms_stime;  /* system time */
              clock_t tms_cutime; /* user time of children */
              clock_t tms_cstime; /* system time of children */
       };

qui a l'air d'etre plus pertinent, ne renvoie pas des resultats 
reproductibles :
Le code suivant (gdcm), pour de 'petits' fichiers,
renvoie 0 ou 1, mais toujours 'au meme endroit'
?!?
Thx
JPRx

      filename = gdcmDataImages[i];

      e1= new gdcm::File( );
      r1 = times(&tms1);
      e1->Load( filename );
      r2 = times(&tms2);
      delete e1;
       
      e1= new gdcm::File( );
      e1->SetLoadMode( NO_SEQ | NO_SHADOW );
      r3 = times(&tms3);
      e1->Load( filename );
      r4 = times(&tms4);       
      delete e1;
 
      std::cout << gdcmDataImages[i] << "\t\t "
                  << (long) ((tms2.tms_utime)  - (tms1.tms_utime))
                  << "\t\t "
                  << (long) ((tms4.tms_utime)  - (tms3.tms_utime))
                     << std::endl;



More information about the Dcmlib mailing list