1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #include <sys/time.h> #include <stdlib.h> #include <stdio.h> #include <math.h>
int timeval_subtract(struct timeval *result, struct timeval *t2, struct timeval *t1) { long int diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); result->tv_sec = diff / 1000000; result->tv_usec = diff % 1000000;
return (diff<0); }
void timeval_print(struct timeval *tv) { char buffer[30]; time_t curtime;
printf("%ld.%06ld", tv->tv_sec, tv->tv_usec); curtime = tv->tv_sec; strftime(buffer, 30, "%m-%d-%Y %T", localtime(&curtime)); printf(" = %s.%06ld\n", buffer, tv->tv_usec); }
int main() { struct timeval tvBegin, tvEnd, tvDiff;
gettimeofday(&tvBegin, NULL); timeval_print(&tvBegin);
int i,j; for(i=0;i<999999L;++i) { j=sqrt(i); }
gettimeofday(&tvEnd, NULL); timeval_print(&tvEnd);
timeval_subtract(&tvDiff, &tvEnd, &tvBegin); printf("%ld.%06ld\n", tvDiff.tv_sec, tvDiff.tv_usec);
return 0; }
|