Zeitdifferenz messen in Windows C/C++ Anwendungen
Von Zeit zu Zeit ist es notwendig die Performance in Programmen zu messen.
In Windows C/C++ Anwendungen kann man das mit dem folgendem Code erledigen:
printf("Start Measurement\n");
FILETIME uSystimeStart;
FILETIME uSystimeEnd;
GetSystemTimeAsFileTime(&uSystimeStart);
// Code to measure
SampleFunction();
GetSystemTimeAsFileTime(&uSystimeEnd);
printf("Stop Measurement\n");
UINT64 uiStartTime = ((UINT64) uSystimeStart.dwHighDateTime << 32) | uSystimeStart.dwLowDateTime;
UINT64 uiEndTime = ((UINT64) uSystimeEnd.dwHighDateTime << 32) | uSystimeEnd.dwLowDateTime;
printf("Result in ns: %llu\n", (uiEndTime - uiStartTime) * 100);
printf("Result in us: %llu\n", (uiEndTime - uiStartTime) / 10);
printf("Result in ms: %llu\n", (uiEndTime - uiStartTime) / 10000);