#c #windows-7
#c #windows-7
Вопрос:
Я использую Microsoft Visual Studio 2010. Я хотел измерить время в микросекундах на языке C на платформе Windows 7. Как я могу это сделать.
Ответ №1:
Способ получить точные измерения времени — с помощью счетчиков производительности.
В Windows вы можете использовать QueryPerformanceCounter()
и QueryPerformanceFrequency()
:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904(v=vs.85).aspx
РЕДАКТИРОВАТЬ : Вот простой пример, который измеряет время, необходимое для суммирования от 0 до 1000000000:
LARGE_INTEGER frequency;
LARGE_INTEGER start;
LARGE_INTEGER end;
// Get the frequency
QueryPerformanceFrequency(amp;frequency);
// Start timer
QueryPerformanceCounter(amp;start);
// Do some work
__int64 sum = 0;
int c;
for (c = 0; c < 1000000000; c ){
sum = c;
}
printf("sum = %lldn",sum);
// End timer
QueryPerformanceCounter(amp;end);
// Print Difference
double duration = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart;
printf("Seconds = %fn",duration);
Вывод:
sum = 499999999500000000
Seconds = 0.659352