Измерение разрешения `std :: clock ()`

Можно ли измерить разрешение вызова std :: clock () ? Или это проблема, когда наблюдение без влияния невозможно?

Я написал следующий наивный тест:

#include <ctime>
#include <iostream>

int main() {
    std::clock_t initial = std::clock();
    std::clock_t current;
    while (initial == (current = std::clock()));
    std::cout << "Initial: " << initial << std::endl;
    std::cout << "Current: " << current << std::endl;
    std::cout << "Precision: " << (static_cast<double>(current - initial) / CLOCKS_PER_SEC) << "s" << std::endl;
}

Я запускал его несколько сотен раз, и он всегда дает 0,01 с .

У меня следующие вопросы:

  • Является ли приведенный выше код хорошим способом измерения разрешения clock () ?
  • Если нет, то что с ним не так? И как это можно улучшить?
6
задан R. Martinho Fernandes 16 August 2011 в 14:58
поделиться