2010-01-12 5 views
0

Je cherche un moyen de savoir combien de temps est passé dans chaque ligne source de mon programme lorsque je cours sur l'iPhone.Similar à ce que Shark peut fournir au niveau de la méthode/fonction. Est-ce possible avec les outils standards? Existe-t-il des outils tiers pouvant fournir ce genre de granularité?Profilage de niveau ligne pour iPhone

Il ne serait pas nécessaire de collecter des données pour chaque ligne de code source du projet. Idéalement, il serait possible de sélectionner des méthodes ou des fonctions spécifiques dont les performances seraient analysées.

Répondre

1

Ce link explique comment collecter des données de trace sur une application iPhone, et notamment l'échantillonnage de la pile. Malheureusement, je ne peux pas dire dire à partir de la doc si vous pouvez avoir des échantillons dessinés au hasard horloge murale, ou manuellement lorsque vous appuyez sur une combinaison de touches.

Lorsque vous avez des traces, vous pouvez obtenir un arbre d'appel, et cela devrait vous fournir des informations de niveau ligne. En fait, le pourcentage de temps dont une ligne est responsable est un nombre simple, la fraction des traces de pile contenant la ligne. Le problème est, l'interface utilisateur peut ne pas vous montrer cela. The fact that that is a useful statistic is not well known.

+0

Cela fonctionne très bien avec les instruments. Avec Shark, je n'ai jamais pu accéder aux lignes de mon code lorsque l'application fonctionnait sur l'appareil. En cours d'exécution avec CPU Sampler et en double-cliquant sur une fonction a ouvert la source et a montré le pourcentage pour chaque ligne. Merci. – VoidPointer