У меня есть несколько вопросов о новом заголовке <chrono>
в С++ 11. Использование Windows 7, Visual Studio 2012.
Посмотрите на пример http://en.cppreference.com/w/cpp/chrono
#include <iostream>
#include <chrono>
#include <ctime>
int fibonacci(int n)
{
if (n < 3) return 1;
return fibonacci(n-1) + fibonacci(n-2);
}
int main()
{
std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now();
int result = fibonacci(42);
end = std::chrono::system_clock::now();
int elapsed_seconds = std::chrono::duration_cast<std::chrono::seconds>
(end-start).count();
std::time_t end_time = std::chrono::system_clock::to_time_t(end);
std::cout << "finished computation at " << std::ctime(&end_time)
<< "elapsed time: " << elapsed_seconds << "s\n";
}
Возможный выход
finished computation at Sat Jun 16 20:42:57 2012
elapsed time: 3s
- Я заметил, что в примере используется
std::chrono::system_clock::now();
означает ли это, что он может использоваться для измерения только прошедшего времени, а не времени процессора? И если я хочу измерить время процессора, какие часы я должен использовать? - Обратите внимание, что вывод
elapsed time: 3s
округляется до целого целого. Есть ли способ сделать его более гранулированным?