/*********************************************************** timing CPU in C++ FILE: cputime.h tested with gcc and CC if used in SYSV you need to add -lbsd in the link stage ************************************************************/ #ifndef CPU_TIME_H_ #define CPU_TIME_H_ %I% #include void report_cpu(char *); void get_cpu_time(double *usertime, double *systime); #endif /*********************************************************** Your program using timer ************************************************************/ #include #include #include #include #include "cputime.h" #ifndef HZ #define HZ 60.0 #endif void report_cpu() { double utime, stime; get_cpu_time(&utime, &stime); printf("Total CPU time:\t%2.2fu %2.2fs\t%2.2f (sec)\n", utime, stime, utime + stime); } void get_cpu_time(double *usertime, double *systime) { struct tms time; times( &time ); *usertime = (double)time.tms_utime / (double)HZ; *systime = (double)time.tms_stime / (double)HZ; } void main() { int i; for (i=0;i<10000000;i++); report_cpu(); }