CLOCKS_PER_SEC не соответствует результатам из std :: clock () - PullRequest
4 голосов
/ 24 мая 2011

Я использую следующую короткую программу для проверки std::clock():

#include <ctime>
#include <iostream>

int main()
{   
    std::clock_t Begin = std::clock();

    int Dummy;
    std::cin >> Dummy;

    std::clock_t End = std::clock();

    std::cout << "CLOCKS_PER_SEC: " << CLOCKS_PER_SEC << "\n";
    std::cout << "Begin: " << Begin << "\n";
    std::cout << "End: " << End << "\n";
    std::cout << "Difference: " << (End - Begin) << std::endl;
}

Однако, после ожидания нескольких секунд для ввода значения «фиктивной», я получаю следующий вывод:

CLOCKS_PER_SEC: 1000000
Begin: 13504
End: 13604
Difference: 100

Это, очевидно, не имеет особого смысла. Независимо от того, как долго я жду, разница всегда где-то около 100.

Чего мне не хватает? Есть ли какой-то заголовок, который я забыл включить?

Я использую Xcode с GCC 4.2.

1 Ответ

10 голосов
/ 24 мая 2011

clock() считает процессорное время, поэтому оно не прибавляет времени, если оно бездействует в ожидании ввода.

...