Надежна ли тактовая синхронизация при переменной частоте процессора? - PullRequest
1 голос
/ 24 ноября 2010

Обычный способ измерения прошедшего времени:

const clock_t START = clock();
// ...
const clock_t END = clock();
double T_ELAPSED = (double)(END - START) / CLOCKS_PER_SEC;

Я знаю, что это не лучший способ измерения реального времени, но мне интересно, работает ли он в системе с процессором с переменной частотой.Это просто неправильно?

Ответы [ 2 ]

1 голос
/ 24 ноября 2010

Существуют системные архитектуры, которые изменяют частоту ЦП, но имеют отдельную и постоянную частоту для управления системными часами.Можно было бы подумать, что функция clock() будет возвращать время, независимое от частоты процессора, но это должно быть проверено в каждой системе, для которой предназначен код.

1 голос
/ 24 ноября 2010

Не рекомендуется использовать процессор с переменной тактовой частотой.

http://support.ntp.org/bin/view/Support/KnownHardwareIssues

У демона NTP (протокол сетевого времени) в linux возникли проблемы с ним.

В большинстве ОС есть API-вызовы для получения более точных значений, например, в Windows QueryPerformanceCounter

http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx

...