J'analyse un comportement de temps d'exécution du programme bizarre avec perf
, avec un peu d'aide sur IRC. Par défaut perf stat
ne répertorie que quelques compteurs, et non ceux qui vous intéressent, donc il y a un ping-pong ennuyeux de "inclure ce compteur dans la sortie" et moi l'ajouter à la liste des arguments passés via -e
et coller le résultat.Comment obtenir la liste stat perf tous les événements possibles
Y at-il un moyen de faire perf stat
simplement tous les compteurs émettent, de sorte qu'un rapport tous les experts doivent me aider?
Cela aurait aussi aidé http://stackoverflow.com/questions/14674463/why-doesnt-perf-report-cache-misses je suppose. –
Give [* this a try. *] (Http://stackoverflow.com/a/378024/23771) Le fait que vous pensiez que les compteurs d'événements CPU vont vous dire quelque chose d'utile signifie peut-être que vous avez besoin d'une manière différente de Regarde ça. –
Donc, après le rapport nominal, vous concluez que ces événements ne sont pas intéressants. Vous ne pouvez pas utiliser tous les jetons, mais même si c'était le cas, je pense que vous seriez submergé par trop d'informations. Vous devriez d'abord trouver si votre programme utilise trop de CPU, s'il a un problème lié au cache ou au TLB, ou s'il passe du temps à attendre des informations de IO (accède-t-il fortement au système de fichiers par exemple?). Gère-t-il mal les allocations de mémoire? Peut-être essayer valgrind et son outil «massif». – amigadev