int main() { #ifdef RDPMC struct rdpmc_ctx cycles; rdpmc_open(0, &cycles); #endif int j; for (j = 0; j < 10; j++) { f2(); f1(); uint64_t start = MEASURE(); int i; for (i = 0; i < N; i++) f1(); uint64_t end = MEASURE(); printf("%d uninstrumented calls avg %lu cycles\n", N, (end-start)/N); start = MEASURE(); for (i = 0; i < N; i++) f2(); end = MEASURE(); printf("%d instrumented calls avg %lu cycles\n", N, (end-start)/N); } return 0; }
/** * interrupts_init - Initialize interrupt counter per thread * * Must be called for each application thread. */ void interrupts_init(void) { int_ok = rdpmc_open(HW_INTERRUPTS, &int_ctx); }