#include #include __declspec(naked) unsigned __int64 __cdecl rdtsc(void) { __asm { rdtsc ret ; return value at EDX:EAX } } int main(int argc, char *argv[]) { unsigned __int64 begin; unsigned __int64 end; unsigned __int64 result = 0; // unsigned __int64 overhead = 0; int number = 1 << 16; int temp; int i; printf("Number: %d\n", number); // overhead = rdtsc(); // for (int i = 0; i < 1<<16; i++); // overhead -= rdtsc(); for (i = 0; i < 1<<16; i++) { begin = rdtsc(); temp = number % 2; end = rdtsc(); result += end - begin; } printf("Ticks: %f\n", result / ((float)(1<<16))); system("PAUSE"); }