MenüHomeBlogMagic

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);
Permalink: https://adirmeier.de/Blog/ID_94
Tags: Blog, C, C++, Windowsvon am 2017-05-04