2009-09-25 6 views
6

Y at-il des articles disponibles en ligne où puis-je trouver quelques conseils sur l'amélioration des performances de l'application iPhone. J'ai lu des documents Apple sur la gestion de la mémoire et les cycles du processeur, mais ils ne sont pas très utiles.Paramètres de construction XCode pour les performances - Applications iPhone

Est-ce que quelqu'un peut également suggérer quelques paramètres XCode qui pourraient améliorer les performances de l'application (version de sortie)?

Merci carafes

+0

Où exactement voyez-vous un coup de performance? – pzearfoss

Répondre

8

Court de mesure et d'optimisation, le niveau d'optimisation du compilateur est à peu près la seule chose qui aura un impact sur les performances de votre application. Généralement, vous voulez un niveau d'optimisation de -Os; c'est-à-dire du code optimisé, mais optimisé pour la taille, aussi. Puisque la mémoire de l'iPhone est limitée, la réduction de la taille du code est utile. Au-delà, vous allez devoir mesurer la performance de votre application et réagir en conséquence. Il existe de nombreux outils dans les instruments et d'autres pour vous aider dans cette tâche. Les outils sont en fait assez bons, une fois que vous les avez compris. Étant donné que vous n'avez encore rien mesuré (ce qui est bon - faites-le fonctionner, faites-le bien, faites-le vite), il peut y avoir des fruits mûrs. Est-ce que tu redessines quelque chose trop souvent? Est-ce que le déclenchement d'un événement temporisé automatique est trop rapide? etc ... Ne tombez pas dans le piège de l'optimisation prématurée; la nécessité de mesurer & réagir est primordiale pour une optimisation réussie. Notez également que vous pouvez effectuer une optimisation grossière via le simulateur, mais vous devez effectuer l'analyse sur l'application exécutée sur l'appareil pour effectuer l'optimisation finale.


(1) On dirait que votre requête de base de données est très lente. Ne connaissant pas le schéma, etc, il est difficile de savoir si c'est vraiment le cas. (2) Lorsque vous effectuez une analyse des performances et que le temps est consommé par une fonction dans une bibliothèque inconnue, recherchez la pile et déterminez quelle est l'identité de cette bibliothèque pour savoir pourquoi votre application déclenche le ralentissement des performances.

+0

Merci pour vos commentaires! Mon application est fondamentalement une application UIKit qui pose quelques questions aux joueurs et découvre ensuite leur compatibilité. Il a donc plusieurs contrôles de l'interface utilisateur comme UIButtons, UIPickerControl, UITextView, etc. Lorsque l'utilisateur sélectionne un bouton, l'application ne prend que 2 à 3 secondes pour répondre, même si elle ne fait qu'obtenir une nouvelle question à partir de la base de données qui ne l'est pas. prend beaucoup de temps. J'ai essayé différents outils comme Shark et Instruments et j'ai trouvé où les cycles du processeur sont gaspillés et ils sont tous dans une bibliothèque inconnue. Merci – Jugs

2

Fondamentalement, ce que dit le bbum. Obtenez des données réelles et allez-y. Cela dit, il existe quelques drapeaux de compilation qui peuvent avoir un effet substantiel:

  • Assurez-vous de ne pas compiler à -O0. Comme l'a noté Mbum, -Os est probablement ce que vous voulez.
  • Si vous effectuez beaucoup de calculs en virgule flottante, assurez-vous que "Compiler pour Thumb" (-mthumb) n'est pas défini lors de la construction pour ARMv6. L'instruction thumb définie sur ARMv6 ne dispose pas d'instructions à virgule flottante. Vous devez donc cliquer sur un shim pour chaque opération à virgule flottante que vous utilisez. Souvent, cela est compensé par les économies de taille de code, mais si vous avez beaucoup de virgule flottante, cela peut représenter un risque de performance. Notez que vous pouvez construire une partie de votre projet pour le pouce et la partie avec elle désactivée. Notez également que l'instruction thumb2 définie sur ARMv7 prend en charge le virgule flottante.
+0

Qu'est-ce que -O0? Google ne montre rien – quantumpotato

2

La meilleure façon d'améliorer les performances de l'iPhone est d'améliorer les performances de l'application, et pas seulement grâce à des optimisations de compilateur, mais grâce à de meilleurs algorithmes.

En général, les optimisations du compilateur peuvent améliorer vos performances de quelques pourcentages à un ou deux chiffres. L'optimisation du code en utilisant de meilleurs algorithmes, la mise en cache, la réarchitecture, etc. pourrait avoir un pourcentage d'amélioration de trois chiffres.

Je n'ai jamais trouvé de paramètre de compilation qui améliore sensiblement les performances de mon application. Vos miles peuvent varier.

Questions connexes