Je suis fasciné par la capacité de 'perf' à enregistrer des graphiques d'appel et j'essaie de comprendre comment l'utiliser pour comprendre une nouvelle base de code.Comment utiliser l'outil de perfusion linux pour la compréhension de code
Je compilé le code en mode débogage, et a effectué des tests unitaires à l'aide de la commande suivante:
make test
perf enregistrer le nain-graphique Cela crée un 230 meg perf. Les données. Je puis écrire sur le graphe d'appel
rapport perf --call-graph --stdio> callgraph.txt
Cela crée un fichier de 50 meg.
Idéalement, je voudrais seulement voir le code appartenant au projet, pas le code du noyau, les appels système, les bibliothèques standard C++, même boost et tout autre logiciel tiers. Actuellement, je vois des articles comme __GI___dl_iterate_phdr, _Unwind_Find_FDE, etc.
J'adore le projet de flammes. Cependant, cette visualisation n'est pas bonne pour la compréhension du code. Y a-t-il d'autres projets, des articles, des idées, qui pourraient être utiles?
Essayez de filtrer votre rapport par "dso" de l'application. Et tout outil Xref sera plus utile pour comprendre la nouvelle base de code (cscope, lxr, http://osxr.org, code.metager.de/source, GUI IDEs) – osgx
'perf rapport -g' pour une application énorme ne devrait pas être déversé dans un fichier externe; cela fonctionnera sans redirection avec l'interface TUI interactif de rapport de perf. Essayez également le script https://github.com/jrfonseca/gprof2dot pour visualiser la sortie du graphique d'appel du rapport de performance en tant qu'image (graphique); et aussi svg/js [FlameGraphs] interactif de Brendan D. Gregg (http://www.brendangregg.com/flamegraphs.html) (il montre souvent beaucoup de mégaoctets de décharges brutes de rapport comme beaucoup de pages A4) - instruction pour le perf: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html#perf – osgx