#include #include #include #define CLOCKS_PER_SEC 1000000 #include //for gettimeofday int v1(void) { char holder[2048]; for (int i=0; i<1000000; i++) { for (int j=0; j<2048; j++) { holder[j]=j; } } } int v2(void) { char holder[2048]; char * p; for (int i=0; i<1000000; i++) { p=holder; for (int j=0; j<2048; j++) { *(p++)=j; } } } double t2d() { struct rusage buf; getrusage(RUSAGE_SELF, &buf); return (double)(buf.ru_utime.tv_sec + (double) buf.ru_utime.tv_usec / (double) CLOCKS_PER_SEC); } float part1(int whch) { double startt=t2d(); switch (whch) { case 1: v1(); break; default: v2(); break; } double endt=t2d(); float interval=(float)(endt-startt); printf("Time: %10.6f\n", interval ); return interval; } int main(int argc, char *argv[]) { int which = (int)strtof(argv[1], NULL); part1(which); }