משהו כזה:
#include <windows.h>
#include <stdio.h>
void main() {
// https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps
LARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds;
LARGE_INTEGER Frequency;
int i;
QueryPerformanceFrequency(&Frequency);
QueryPerformanceCounter(&StartingTime);
for (i = 0; i < 100; i++) {
// your code
}
QueryPerformanceCounter(&EndingTime);
ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart;
ElapsedMicroseconds.QuadPart *= 1000000;
ElapsedMicroseconds.QuadPart /= Frequency.QuadPart;
printf("My code runs in %i microseconds", ElapsedMicroseconds.QuadPart / 100);
QueryPerformanceCounter(&StartingTime);
for (i = 0; i < 100; i++) {
// his code
}
QueryPerformanceCounter(&EndingTime);
ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart;
ElapsedMicroseconds.QuadPart *= 1000000;
ElapsedMicroseconds.QuadPart /= Frequency.QuadPart;
printf("His code runs in %i microseconds", ElapsedMicroseconds.QuadPart / 100);
}
נ. ב. אני לא כותב C, (מכיר קצת אבל לא יותר מזה). ברור שהקומפיילר היה צורח על הקוד שלי, אבל כתבתי אותו בלי לשאול את הקומפיילר לדעתו... האחריות עליך לאתר ולתקן את השגיאות...