2016-01-16 1 views
0

J'ai un programme multitâche écrit en C++ et je veux calculer l'utilisation du processeur pour chaque thread en base secondaire (peut être 100 ms) comme vous le savez/proc/stat ou quelque chose comme ça n'a pas d'exactitude pour cette résolution de temps.Calcul de l'utilisation précise du processeur par tâche dans l'assembly

Je veux savoir s'il existe un moyen de calculer les cycles d'horloge consommés pour chaque thread dans l'assemblage ou en C/C++?

+0

"précise" n'est pas vraiment possible – deviantfan

+1

double possible de [sources de temps en Processeurs x86] (http://stackoverflow.com/questions/12229644/time-sources-in-x86-processors) – Drop

+0

Alors, comment savez-vous quelle heure a été passée dans quel thread, et combien de temps a été passé dans un autre thread (par exemple dans le "déballons ce paquet réseau qui vient d'arriver" ou "remettons à zéro la mémoire de cette page, l'OS vient de se libérer", etc, etc) –

Répondre

0

A partir de Linux 2.6.12 et glibc 2.4, vous pouvez utiliser clock_gettime avec une horloge de type CLOCK_THREAD_CPUTIME_ID pour obtenir des informations de synchronisation realiable