Changeset 3274 in Sophya for trunk/SophyaLib/SysTools/ctimer.h
- Timestamp:
- Jul 6, 2007, 2:54:12 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SysTools/ctimer.h
r2322 r3274 1 1 // This may look like C code, but it is really -*- C++ -*- 2 2 // 3 // $Id: ctimer.h,v 1. 4 2003-02-11 15:31:07 cmvExp $3 // $Id: ctimer.h,v 1.5 2007-07-06 12:54:12 ansari Exp $ 4 4 // 5 5 … … 16 16 17 17 // <summary> Permet de chronometrer des fonctions. </summary> 18 // La macro TIMEF cree un objet de class Timer qui memorise 19 // l'heure de sa creation, et le temps CPU. 20 18 // Class Timer qui memorise l'heure de sa creation, et le temps CPU. 21 19 // A la fin du bloc ou de la procedure, l'objet est detruit, 22 20 // et son destructeur affiche le temps ecoule. 23 21 24 // La macro SPLITTIME lui permet d'afficher des temps partiels.25 22 namespace SOPHYA { 26 23 … … 29 26 public: 30 27 // L'objet memorise le temps CPU et l'heure, et le nom donne 31 Timer(const char* name=0 );28 Timer(const char* name=0, bool prfg=true); 32 29 33 30 // Le destructeur appelle split sans parametre. … … 36 33 // Affiche le temps ecoule total/partiel, avec le nom eventuel. 37 34 // Si pas de parametre affiche le nom donne a la creation. 38 void Split(const char* comm=0 );35 void Split(const char* comm=0, bool prfg=false); 39 36 40 37 // Sert a eviter que GNU ne pretende qu'on utilise pas l'objet... … … 42 39 void Nop() {} 43 40 41 /*! \brief Return the total elapsed time (number of seconds), 42 between the object creation and the last call to Split(). 43 */ 44 inline int_8 TotalElapsedTime() { return elapSecT ; } 45 /*! \brief Return the partial elapsed time (number of seconds). 46 between the last two calls to Split(). 47 */ 48 inline int_8 PartialElapsedTime() { return elapSecP ; } 49 50 /*! \brief Return the total CPU time in seconds, 51 between the object creation and the last call to Split(). 52 */ 53 inline float TotalCPUTime() { return cpuSecT; } 54 /*! \brief Return the partial CPU time in seconds, 55 between the last two calls to Split(). 56 */ 57 inline float PartialCPUTime() { return cpuSecP; } 58 44 59 private: 45 60 clock_t cpu0, cpuSplit; 46 61 time_t elapse0, elapseSplit; 62 float cpuSecT, cpuSecP; // Total and partial CPU time 63 int_8 elapSecT, elapSecP; // Total and partial elapsed time 47 64 string timerName; 65 bool defprtflg; 48 66 }; 49 67 50 68 } // namespace SOPHYA 51 69 52 #define TIMEN(x) Timer timer(x); timer.Nop(); 53 #define TIMEF Timer timer(__PRETTY_FUNCTION__); timer.Nop(); 54 #define SPLITTIME timer.Split(); 70 #define TIMEF Timer timer(__PRETTY_FUNCTION__); timer.Nop(); 55 71 56 72 #endif // CTIMER_SEEN
Note:
See TracChangeset
for help on using the changeset viewer.