Méthode d'obtenir le temps de programmation CPU pour le fil, en C, qui fonctionne aussi bien sur OpenSolaris et Linux
-
25-09-2019 - |
Question
J'ai un petit démon que je vous écris en C et je besoin d'un moyen pour obtenir le temps CPU en cours sur un fil. Linux fournit apparemment un certain nombre de façons de s'y prendre, clock_gettime (CLOCK_THREAD_CPUTIME_ID, ...), pthread_getcpuclockid (), getrusage (RUSAGE_THREAD, ...) mais aucun d'entre eux semblent être pris en charge sous OpenSolaris 2009.06.
Y at-il une manière amicale multiplateforme pour obtenir le temps CPU en cours pour un fil? Sinon, est-il possible de le faire dans OpenSolaris du tout? À ce stade, je suis même prêt à mettre dans un tas de directives du compilateur laides pour faire ce travail.
La solution
Selon "Priorité de thread sur la Plate-forme Solaris ", Solaris 9 et au-dessus d'un défaut one-to-one correspondance entre les fils et LWPs ( processus légers ). Par conséquent, selon getrusage de manpage , vous devriez être en mesure d'appeler getrusage(RUSAGE_LWP, ...)
.