#include <unistd.h>
#include <stdio.h>
#include "stopwatch.h"
typedef struct {
long tpid;
} Pd;
Pd pd;
Pd * current = &pd;
static int fake_getpid() {
return current->tpid;
}
#define time_it(_p) \
sw.start(); \
for (i = 0; i < iters; i++) _p(); \
sw.stop(); \
printf("%d " #_p "() iterations took %4.2f usec per iteration.\n", iters, \
static_cast<double>(sw.elapsed() - overhead)/static_cast<double>(iters))
int main() {
stopwatch sw;
const unsigned iters = 10000;
unsigned i;
sw.start();
for (i = 0; i < iters; i++) { }
sw.stop();
const unsigned overhead = sw.elapsed();
time_it(getpid);
time_it(fake_getpid);
}
syntax highlighted by Code2HTML, v. 0.9