La mesure du temps dans Linux - temps vs horloge vs getrusage vs clock_gettime vs gettimeofday vs timespec_get?

Parmi les fonctions de chronométrage, time, clock getrusage, clock_gettime, gettimeofday et timespec_get, je veux bien comprendre comment ils sont mis en œuvre et quelles sont leurs valeurs de retour afin de savoir dans quelle situation je les utiliser.

Nous avons besoin d'abord de classer les fonctions de renvoi de l'horloge de mur valeurs comparer à des fonctions de retour processus ou threads valeurs. gettimeofday renvoie l'horloge murale de la valeur, clock_gettime renvoie l'horloge murale de la valeur ou processus ou threads valeurs en fonction de la Clock paramètre passé à elle. getrusage et clock processus de retour des valeurs.

Ensuite, la deuxième question concerne la mise en œuvre de ces fonctions et, en conséquence, leur exactitude. Qui de logiciel ou de matériel mécanisme de ces fonctions.

Il semble que getrusage utilise seulement le noyau de la tique (généralement de 1 ms de temps), et en conséquence ne peuvent pas être plus précis que le ms. Est-il juste?
Puis le getimeofday fonction semble être d'utiliser le plus précis des matériels sous-jacents disponibles. Comme une conséquence de sa précision est généralement la microseconde (ne peut pas être plus en raison de l'API) sur un matériel récent.
Qu'en est clock, la page de man de parler de "rapprochement", ça veut dire quoi?
Qu'en est clock_gettime, l'API est dans l'ordre de la nanoseconde, ça signifie qu'il est capable d'être très précis si le matériel le permet? Ce sujet de monotonie?

Existe-il d'autres fonctions?

InformationsquelleAutor Manuel Selva | 2012-09-12