Если вы работаете в системе POSIX, вы можете использовать gettimeofday(3)
:
struct timeval start, end;
gettimeofday(&start, NULL);
...
gettimeofday(&end, NULL);
// Watch out for overflow!
int delta_milliseconds = 1000 * (end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec)/1000;
Если вы используете Windows, вы можете использовать GetTickCount
:
DWORD start, end;
start = GetTickCount();
...
end = GetTickCount();
int delta_milliseconds = end - start;
Но помните, что GetTickCount
имеет разрешение всего около 10-16 мс.Если вам нужна большая точность, используйте QueryPerformanceCounter
и QueryPerformanceFrequency
вместо:
// Error-checking omitted for expository purposes
LARGE_INTEGER freq, start, end;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
...
QueryPerformanceCounter(&end);
double delta_milliseconds = (double)(end.QuadPart - start.QuadPart) / freq.QuadPart * 1000.0;