Einige Fragen zum <chrono> -Header in C ++ 11

Ich habe mehrere Fragen zu neu<chrono> Header in C ++ 11. Unter Windows 7, Visual Studio 2012.

Schauen Sie sich das Beispiel anhttp://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";
}

Mögliche Ausgabe

finished computation at Sat Jun 16 20:42:57 2012
elapsed time: 3s
Ich habe bemerkt, dass das Beispiel verwendetstd::chrono::system_clock::now(); Bedeutet dies, dass nur die verstrichene Zeit und nicht die CPU-Zeit gemessen werden kann? Und wenn ich die CPU-Zeit messen möchte, welche Uhren soll ich verwenden?Beachte daselapsed time: 3s Diese Ausgabe wird auf ganze Zahlen gerundet. Gibt es eine Möglichkeit, es granulierter zu machen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage