Jak mogę zmierzyć czas procesora i czas zegara ściennego w systemie Linux / Windows?

Mam na myśli: jak mogę zmierzyć czas, jaki mój procesor spędził na wykonywaniu funkcji i czasie zegara ściennego potrzebnym do uruchomienia mojej funkcji? (Jestem zainteresowany Linuksem / Windows i zarówno x86, jak i x86_64). Zobacz, co chcę zrobić (Im używa C ++ tutaj, ale wolałbym rozwiązanie C):

int startcputime, endcputime, wcts, wcte;

startcputime = cputime();
function(args);
endcputime = cputime();

std::cout << "it took " << endcputime - startcputime << " s of CPU to execute this\n";

wcts = wallclocktime();
function(args);
wcte = wallclocktime();

std::cout << "it took " << wcte - wcts << " s of real time to execute this\n";

Kolejne ważne pytanie: czy ten czas mierzy architekturę niezależnie, czy nie?

questionAnswers(4)

yourAnswerToTheQuestion