Qu'est-ce que profileurs gratuit, faible en tête (statistiques), on peut utiliser sous Linux?

StackOverflow https://stackoverflow.com/questions/505665

Question

De préférence de dépôts Ubuntu.

Était-ce utile?

La solution

D'autres ont mentionné OProfile ; pour le profilage statistique système complet sur les installations Linux modernes, il fait en effet la roche.

Le plus vénérable outil (qui ne nécessite pas de support du noyau et donc fonctionnera sous les anciennes versions de Linux ou même les systèmes d'exploitation non-Linux) est GNU gprof , inclus dans binutils (et donc sans doute déjà installé dans votre environnement de développement).

Pour utiliser gprof, juste compiler votre application avec l'argument à -pg gcc; un fichier appelé sera créé gmon.out après vos sorties du programme, et peut alors être <=> utilisé pour analyser ce fichier.

Autres conseils

Une technique simple mais efficace consiste à exécuter le programme sous gdb et traiter le signal SIGINT. Alors que le programme est en cours d'exécution, générer SIGINT manuellement en tapant le contrôle-c ou autre, et pendant qu'il est arrêté, enregistrer la pile d'appels. Pour ce faire, un certain nombre de fois, comme 10 ou 20, alors que le programme est subjectivement lent. Cela vous donnera une très bonne idée de l'endroit où le temps passe.

Cette méthode ne vous donne pas un timing précis, mais il ne trouve précisément les instructions, y compris les instructions d'appel, qui coûtent le plus de temps.

Comment puis-je le profil C ++ le code en cours d'exécution sous Linux?

sysprof est un bon profileur, semblable à OProfile (a aussi GUI GTK). qui est disponible dans le dépôt Ubuntu. Il est un profileur au niveau du noyau, ce qui nécessite un module du noyau contrairement gprof, mais aussi à la différence gprof, il peut profiler des applications multithread.

Il est OProfile . Il est pas si difficile à utiliser, mais est un peu buggy.

J'ai eu un bon succès avec oprofile ( http://oprofile.sourceforge.net/news/ ) qui est disponible dans les dépôts Ubuntu ainsi. Il ne nécessite pas de recompilation, et ne comporte aucune limitation en ce qui concerne les objets partagés ou similaire.

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