2009-05-23 12 views
-1

J'ai une application à moitié terminée. La performance n'est pas vraiment bonne, et je me demande où sont les goulots d'étranglement. Bien que je puisse aller de l'avant et commencer à commenter des lignes suspectes de code, je me demande s'il y a des outils qui me diraient quelle méthode cool a pris combien de temps et ce qui est arrivé ensuite. La trace de pile n'est pas vraiment utile.Existe-t-il des outils ou de bonnes techniques pour savoir où se trouvent les goulets d'étranglement dans une application iPhone?

J'ai eu une idée étrange de convertir la trace de la pile en un graphique GraphViz, pour voir visuellement l'image entière. Je sais que certains gars chez IBM ont fait quelque chose de similaire qui a généré un graphique visuel de la trace de la pile, ce qui était très impressionnant et significatif. Avant de réinventer la roue: Y a-t-il un bon outil ou une bonne technique qui aide à trouver des goulots d'étranglement au niveau des performances sur iPhone OS?

+1

Est-ce à répondre à ceci: http://stackoverflow.com/questions/899880/how-can-i-programmer-déterminer-cpu-usage-rate-or-how-busy-occupé-the-sy? – Kriem

Répondre

0

Utilisez Instruments (une application fournie avec les outils de développement) pour vous connecter au processus et mesurer les performances.

Il y a un préréglage intitulé "Core Animation", qui est probablement ce que vous voulez.

Il y a un tutoriel vidéo sur le portail des développeurs iPhone sur les instruments: http://developer.apple.com/codingheadstarts/index.html

2

Comme Kenneth dit, Instruments dans un outil précieux pour l'optimisation des performances d'une application Cocoa. Son mode d'emploi peut être trouvé here (ou dans votre documentation Xcode). L'un des grands avantages des outils de débogage Xcode est qu'ils peuvent être exécutés sur une application s'exécutant sur le périphérique. Vous pouvez donc utiliser Instruments pour effectuer le profilage de votre application sur le matériel réel. En utilisant des instruments, j'ai trouvé que l'outil CPU Sampler peut donner une très bonne ventilation de l'endroit où mon application passe le plus de temps. Par exemple, j'avais ce que je supposais être une requête SQLite lente et je m'efforçais d'optimiser toutes mes interactions SQLite lorsque j'utilisais Instruments et que je trouvais que c'était dû à des routines de traitement de chaînes inutiles.

Vous pouvez également utiliser Shark pour le profilage, bien que ce ne soit pas aussi simple à utiliser.

Vous pouvez également être intéressé par les réponses à ces questions: