Question

Shark sur Mac OS X est un excellent outil pour profiler une application système en cours d'exécution. Existe-t-il des outils similaires pour Linux?

OProfile ressemble à ce que pourrait être, tout le monde l'a utilisé?

Était-ce utile?

La solution

OProfile est un outil qui permet de créer des profils basés sur l'échantillonnage votre application et le système appelle à la fois. Cela permet de voir des informations détaillées sur l'endroit où il passe son temps. Il n’a pas d’interface graphique, mais il existe plusieurs interfaces qui vous permettront de traiter les informations des analyses.

Je l'ai beaucoup utilisé, aussi bien pour les applications de bureau que pour les systèmes intégrés. Il faut un peu d’effort pour interpréter les résultats, mais la sortie de callgraph est vraiment utile ici.

Autres conseils

Pour étendre une autre réponse, j'utilise l'option "callgrind" de valgrind ( http://valgrind.org ). Installez ensuite kcachegrind de KDE pour une belle interface graphique.

En tant que tutoriel de mannequin, faites:

1) Compilez votre application avec les informations de débogage. C’est une bonne idée d’essayer de profiler avec optimisation à la fois, de manière à obtenir plus d’informations, mais elles risquent d’être moins précises (en particulier, de petites fonctions semblent prendre plus de temps qu’elles ne le méritent.

2) Exécuter avec:

valgrind --tool=callgrind <name of your app> <your app's options>

Ceci devrait produire un fichier appelé 'callgrind.something', que vous pouvez charger dans kcachegrind.

Vous pouvez également consulter:

valgrind --tool=cachegrind <name of your app> <your app's options>

Ce qui vous donnera des informations sur la manière dont votre application interagit avec le cache de votre CPU.

Notez que même si Valgrind et Shark ressemblent à des applications similaires, elles fonctionnent très différemment. Lorsque vous exécutez une application dans valgrind, celle-ci sera exécutée plusieurs fois plus lentement que la normale (souvent plus de 40 fois plus lentement), mais les résultats obtenus sont bien plus précis que ceux de shark. J'ai tendance à utiliser les deux pour obtenir le plus d'informations possible!

Vous pouvez probablement essayer Valgrind ( http://valgrind.org/ ). Ils ont à la fois des outils de profilage à l'exécution et à la compilation.

Un peu tard pour répondre à cette question, mais la réponse la plus proche est Zoom . Une partie de l'équipe Shark a travaillé dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top