Profilage c++ sous mac os x

Je suis d'essayer de profil en c++ code sur mon mac (os x Lion) et je n'ai pas été en mesure de trouver quelque chose d'utile. Je suis à la recherche d'un profiler qui va me dire quelles sont les fonctions prenant mon temps cpu (similaire à matlab profiler).

Voici ce que j'ai essayé

  • gprof. C'est ce que j'utilise sur ma machine linux, mais il me donne juste une sortie vide sur mon mac (apparemment un problème connu)
  • Instruments. Je ne peux pas pour la vie de me comprendre comment le profil de rien dans mon binaires compilés. Je ne peux trouver toute sorte d'utile tutoriel.
  • (autre recherche a révélé le Requin, qui n'est plus disponible et Valgrind qui est de la mémoire).

Apprécie vraiment l'aide!

  • Vous pouvez essayer de ceci, en ces raisons.
  • MikeDunlavey commentaire est obliquement ce qui suggère que vous ouvrez votre programme de gdb (ou certains autres débogueur, si vous pouvez comprendre comment) et manuellement l'interrompre à intervalles réguliers, essentiellement simuler ce gprof/Instruments pour vous, mais avec plus d'effort mental. Suffit d'utiliser les Instruments de la place; voir @duskwuff la réponse ci-dessous à l'étape par étape les instructions.
  • Mes obliques suggestion trouve speedup possibilités que gprof/Instruments ne le font pas. Instruments des échantillons de la pile d'appel, mais aussi loin que je peux dire, il ne vous permet pas réellement d'examiner des échantillons de la pile, qui est de savoir comment vous trouver les accélérations. Plutôt (si je ne me trompe) qu'il achète dans le concept de "hot chemin", et à la non-jouet de programmes de taille décente, de gros problèmes peuvent facilement se cacher de la hot chemin.
  • Voici comment construire le hot chemin. Prendre tous les échantillons en passant par principal (100%). De ces, de trouver la routine la plus-appelée main, (appelons-la Une) et supposons qu'il est sur 30% des échantillons. D'autres fonctions pourraient être à l'autre de 70%, mais chaque appelée inférieur à A. De ces échantillons, trouver la routine la plus-disant de l'appeler B), et supposons qu'il est à 30% de ces échantillons. OK, donc la séquence principale-A-B est sur 30% x 30% = 9% des échantillons. De rien d'extérieur que 9% n'est pas remarqué. Vous pouvez dire qu'après quelques niveaux, il y a beaucoup de choses que vous ne voyez pas.
  • iprofiler de BSD est de nice depuis sa sortie peut être ouvert dans les Instruments.
InformationsquelleAutor foges | 2012-07-12