Comprendre les différentes horloges de clock_gettime()
Salut, je voulais utiliser le clock_gettime()
fonction de mesure de la performance de mon code.
Je suis incapable de comprendre la différence entre les différents types d'horloges utilisées dans la fonction de l'homme des descriptions de page. esp
CLOCK_REALTIME,
CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_CPUTIME_ID
Quelqu'un peut explaing ce que chacune de ces horloges faire?
- connexes: stackoverflow.com/questions/12392278/...
Vous devez vous connecter pour publier un commentaire.
CLOCK_REALTIME
rapports sur le mur le temps de l'horloge.CLOCK_MONOTONIC
est pour la mesure par rapport au temps réel. Il avance au même rythme que le débit réel de temps, mais il n'est pas soumis à des discontinuités de manuel ou automatique (NTP) des réglages de l'horloge système.CLOCK_PROCESS_CPUTIME_ID
est pour la mesure de la quantité de temps CPU consommé par le processus.CLOCK_THREAD_CPUTIME_ID
est pour la mesure de la quantité de temps CPU consommé par le thread. Il est pris en charge par les noyaux modernes et glibc depuis 2.6.12, mais sur les anciens noyaux linux de la glibc émule mal simplement en retournant la quantité de temps CPU consommé par le processus depuis le moment où le fil a été créé.http://man7.org/linux/man-pages/man2/clock_gettime.2.html
CLOCK_MONOTONIC
doit être utilisé si vous voulez mesurer le temps total écoulé, y compris le temps passé bloqué dans l'attente d'IO, mais il comprendra également des ralentissements causés par d'autres processus de prévue alors que votre programme est en train d'essayer de l'exécuter.CLOCK_PROCESS_CPUTIME_ID
ne compter réelle de cycles d'horloge passé à l'exécution de votre processus de son nom (dans l'espace utilisateur ou kernelspace, je crois), mais pas tout le temps passé bloqué/de couchage.CLOCK_MONOTONIC
est soumis à l'exécution rapide ou lente due à la douceur de réglage de l'horloge (par exemple, par ntpd), mais il ne sera jamais discontinue.CLOCK_MONOTONIC
sur Linux, c'est qu'il en fait être monotone et uniquement à des ajustements continus pour clock skew, pas discontinue modifications de l'horloge, mais un certain nombre de personnes affirment qu'il ya des bugs. Avez-vous des sources dignes de foi? Dois-je ouvrir une nouvelle question sur la question?CLOCK_MONOTONIC
est cassé la façon dont certaines personnes disent que c'est le cas, il ne doit absolument pas être utilisés et, le noyau devrait juste reconfigurer pour qu'il corresponde àCLOCK_MONOTONIC_RAW
. C'est pourquoi je suis sceptique sur les revendications que c'est cassé...