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

Привет, я использую QueryperformanceFrequency, чтобы получить число циклов, то есть скорость процессора.Но это показывает мне неправильное значение.В спецификации написано, что процессор имеет частоту около 400 МГц, но что мы получаем через код - это что-то 16 МГц.

Пожалуйста, указывайте любой указатель:

Код для устройства Wince:

LARGE_INTEGER FrequnecyCounter;

QueryPerformanceFrequency(&FrequnecyCounter);

CString temp;

temp.Format(L"%lld",FrequnecyCounter.QuadPart)`AfxMessageBox(temp);

Спасибо,

Мукеш

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

QueryPerformanceFrequency возвращает частоту счетчика периферийного устройства, а не процессора.Эти периферийные устройства обычно работают на исходной частоте Crystal.16 МГц должно быть достаточно хорошим разрешением, чтобы вы могли измерять интервалы мелкого зерна.

1 голос
/ 23 декабря 2010

QPF не возвращает тактовую частоту процессора. Возвращает частоту высокопроизводительного таймера. В некоторых системах он может измерять циклы процессора. В других системах может использоваться отдельный таймер, работающий на той же частоте. (но это не зависит от таких вещей, как SpeedStep, которые могут изменить тактовую частоту процессора). Часто он полностью использует отдельный таймер, который может отсутствовать даже на самом процессоре, но может быть частью материнской платы.

QueryPerformanceCounter / QueryPerformanceFrequency только обещают, что они используют лучший таймер, доступный в системе. Они не обещают, что это за таймер.

...