Parmi les quatre fonctions de temporisation, getrusage
, clock_gettime
, clock
, et gettimeofday
je veux bien comprendre comment ils sont mis en œuvre et quelles sont leurs valeurs de retour afin de savoir dans quelle situation je suis obligé de l'utiliser.
Nous avons besoin d'abord de classer les fonctions de renvoi de l'horloge de mur valeurs comparer aux fonctions de renvoi de processus ou threads valeurs. gettimeofday
renvoie l'horloge murale de la valeur, en clock_gettime
renvoie l'horloge murale de la valeur ou de processus ou threads valeurs en fonction du 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 qu' 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 l' 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 clock
, la page de man de parler de "rapprochement", ça veut dire quoi?
Qu'en 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?