Перебор QueryPerformanceCounter() и сохранить значение:QueryPerformanceCounter() Тест для Windows Embedded Compact 7
// Main loop for timer test
for (int i = 0; i < ITERATIONS; i++) // ITERATIONS = 1000
{
QueryPerformanceCounter(&li);
time[i] = double(li.QuadPart)/PCFreq; //1,193,182 per second
}
//calculate the difference between each call
// and save in difference[]
for (int j = 0; j < (ITERATIONS - 1) ; j++)
{
difference[j] = time[j+1] - time[j];
}
(. Деление на PCFreq дает время между каждым вызовом)
Высокое разрешение таймера/счетчика предположительно работает, потому что он не возвращает стандартную частоту 1000.
Среднее значение 11.990884 микросекунд между каждой отметкой времени (тысячи звонков с отметками времени).
Это кажется очень медленным.
Является ли этот тест испорченным?
или идеи относительно того, почему его сообщения такие медленные значения на Celeron 1.1Ghz?
Почему вы не используете QueryPerformanceFrequency для проверки зарегистрированной частоты? И что именно вы пытаетесь проверить здесь? Похоже, вы просто определяете время, необходимое для запроса счетчика, а затем выполните некоторую математику. – ctacke
@ctacke: Я использую (не показано) для получения PCFreq; // 1,193,182 в секунду. Да, меня интересует, как долго вызов QueryPerformanceCounter - так что я могу точно измерить другие вещи. (+1). –
@ctacke: не 12 микросекунд очень долго? –