This example shows how to use Yeppp! library to measure the execution time in CPU cycles:
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <yepLibrary.h>
#define ARRAY_SIZE (1024*4)
int main(int argc, char **argv) {
Yep64u systemFeatures, state, cycles, minOverhead, minCycles;
YepSize i, iteration, iterationMax = 1000;
size_t memcmpResult;
for (iteration = 0; iteration < iterationMax; iteration++) {
if (cycles < minOverhead)
minOverhead = cycles;
}
for (iteration = 0; iteration < iterationMax; iteration++) {
for (i = 0; i < ARRAY_SIZE; i++) {
}
if (cycles < minCycles)
minCycles = cycles;
}
CPE = ((
Yep64f)(minCycles - minOverhead)) / ((
Yep64f)ARRAY_SIZE);
printf("Cycles per element: %3.2lf\n", (double)(CPE));
} else {
printf("Processor cycle counter is not supported\n");
}
return 0;
}