| 99 | #endif |
| 100 | |
| 101 | void writeTime(const char* v) |
| 102 | { |
| 103 | int64 curr; |
| 104 | getrusage(RUSAGE_SELF,&t_rec); |
| 105 | curr = (int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec |
| 106 | +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec; |
| 107 | getrusage(RUSAGE_CHILDREN,&t_rec); |
| 108 | curr += (int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec |
| 109 | +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec; |
| 110 | curr -= siStartTime; |
| 111 | double f = ((double)curr) * timer_resolution / (double)1000000; |
| 112 | if (f/timer_resolution > mintime) |
| 113 | { |
| 114 | #ifdef EXTEND_TIMER_D |
| 115 | Print("//%s %.2f/%d sec (%d) >>%s<<\n" ,v ,f,(int)timer_resolution,iiOp,my_yylinebuf); |
| 116 | #else |
| 117 | if (timer_resolution==(double)1.0) |
| 118 | Print("//%s %.2f sec\n" ,v ,f); |
| 119 | else |
| 120 | Print("//%s %.2f/%d sec\n" ,v ,f,(int)timer_resolution); |
| 121 | #endif |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | /*0 Real timer implementation*/ |
| 126 | VAR int rtimerv = 0; |