#include #include #include #include int main(int argc, char **argv) { int i, j, k, total; struct rusage resUsage1, resUsage2; struct timespec ts = { 0, 1000 }; if (getrusage (RUSAGE_SELF, &resUsage1) == -1) errx(1, "getrusage"); /* simulate some activity */ for( i=0; i<1000; i++ ) { for( j=0; j<1000; j++ ) { void *p = mmap(0, 1024 * 1024, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); munmap(p, 1024 * 1024); total = j * i; for( k=0; k<1000; k++ ) { total += k + i; } } } if (getrusage (RUSAGE_SELF, &resUsage2) == -1) errx(1, "getrusage"); printf("kernel1 %ld.%06ld\n", resUsage1.ru_stime.tv_sec, resUsage1.ru_stime.tv_usec); printf("kernel2 %ld.%06ld\n", resUsage2.ru_stime.tv_sec, resUsage2.ru_stime.tv_usec); printf("user1 %ld.%06ld\n", resUsage1.ru_utime.tv_sec, resUsage1.ru_utime.tv_usec); printf("user2 %ld.%06ld\n", resUsage2.ru_utime.tv_sec, resUsage2.ru_utime.tv_usec); return 0; }