2009-09-25 5 views
6

Gibt es online verfügbare Artikel, wo ich einige Tipps zur Verbesserung der Leistung der iPhone-Anwendung finden kann. Ich habe Apple-Dokumente zu Speicherverwaltung und CPU-Zyklen gelesen, aber sie sind nicht sehr hilfreich.XCode Build-Einstellungen für die Leistung - iPhone apps

Kann auch jemand einige XCode-Einstellungen vorschlagen, die die Leistung der Anwendung (Release-Version) verbessern könnten?

Dank Krügen

+0

Wo genau sehen Sie einen Leistungseinbruch? – pzearfoss

Antwort

8

Kurz der Messung und Optimierung ist Compiler Optimierungsstufe nur um das einzige, was die Leistung der Anwendung auswirken. In der Regel benötigen Sie eine Optimierungsstufe von -Os; Das heißt, optimierter Code, aber auch für die Größe optimiert. Da der Speicher des iPhones begrenzt ist, ist die Reduzierung der Code-Größe nützlich.

Darüber hinaus müssen Sie die Leistung Ihrer Anwendung messen und entsprechend reagieren. Es gibt viele Werkzeuge in Instrumenten und anderen, um Ihnen bei dieser Aufgabe zu helfen. Die Werkzeuge sind eigentlich ziemlich gut, wenn Sie sie herausgefunden haben.

Vorausgesetzt, dass Sie noch nichts wirklich gemessen haben (was gut ist - machen Sie es, machen Sie es richtig, machen Sie es schnell), kann es tief hängende Frucht sein. Zeichnest du etwas zu oft neu? Haben einige automatische zeitgesteuerte Ereignisse zu schnell ausgelöst? etc ... Nur nicht in die Falle der vorzeitigen Optimierung fallen; Die Notwendigkeit zu messen & reagieren ist von größter Bedeutung für eine erfolgreiche Optimierung.

Beachten Sie auch, dass Sie eine grobkörnige Optimierung über den Simulator durchführen können, aber Sie müssen die Analyse wirklich auf der App ausführen, die auf dem Gerät ausgeführt wird, um die endgültige Optimierung durchzuführen.


(1) Klingt wie Ihre Datenbank-Abfrage ist wirklich langsam. Wenn man das Schema usw. nicht kennt, ist es schwer zu wissen, ob das wirklich der Fall ist.

(2) Wenn Sie eine Performance-Analyse durchführen und die Zeit von einer Funktion in einer unbekannten Bibliothek beansprucht wird, suchen Sie den Stack und sehen Sie, was diese Bibliothek aufruft, um herauszufinden, warum Ihre App die Performance verlangsamt.

+0

Danke für Ihre Kommentare! Meine Anwendung ist im Grunde eine UIKit-Anwendung, die den Spielern ein paar Fragen stellt und dann ihre Kompatibilität herausfinden wird. So hat es mehrere UI-Steuerelemente wie UIButtons, UIPickerControl, UITextView usw. Wenn der Benutzer eine Schaltfläche auswählt, dauert es bis zu 2-3 Sekunden für die App zu reagieren, obwohl es gerade eine neue Frage aus der Datenbank abruft, die nicht nimm dir viel Zeit. Ich habe verschiedene Tools wie Shark und Instruments ausprobiert und herausgefunden, wo die CPU-Zyklen verschwendet werden und sie alle in einer Unbekannten Bibliothek sind. Danke – Jugs

2

Grundsätzlich was Bbum sagte. Holen Sie sich die tatsächlichen Daten und gehen Sie von dort aus. Das heißt, es gibt ein paar Kompilierflags, die wesentlichen Effekt haben können:

  • Stellen Sie sicher, dass Sie nicht kompilieren bei -O0. Wie BBM bemerkt, ist -Os wahrscheinlich, was Sie wollen.
  • Wenn Sie viele Gleitkommaberechnungen durchführen, vergewissern Sie sich, dass "Compile for Thumb" (-mthumb) beim Erstellen von ARMv6 nicht festgelegt ist. Der Daumenbefehl, der auf ARMv6 gesetzt ist, hat keine Gleitkommabefehle, deshalb triffst du einen Shim für jede Fließkommaoperation, die du benutzt. Dies wird oft durch die Einsparungen bei den Codegrößen ausgeglichen, aber wenn Sie viele Fließkommazahlen haben, kann dies ein Leistungsrisiko darstellen. Beachten Sie, dass Sie einen Teil Ihres Projekts für Thumb und Part erstellen können, wenn es deaktiviert ist. Beachten Sie auch, dass der Befehl thumb2 auf ARMv7 Fließkomma unterstützt.
  • +0

    Was ist -O0? Google zeigt nichts – quantumpotato

    2

    Der beste Weg, die Leistung des iPhone zu verbessern, ist die Verbesserung der App-Leistung, nicht nur durch Compiler-Optimierungen, sondern durch bessere Algorithmen.

    Im Allgemeinen können Compiler-Optimierungen Ihre Leistung um einige ein- oder zweistellige Prozentsätze verbessern. Code-Optimierung mit besseren Algorithmen, Caching, Re-Architect, etc. könnte eine dreistellige prozentuale Verbesserung haben.

    Ich habe noch nie eine Compiler-Einstellung gefunden, die die Leistung meiner App merklich verbessert. Ihre Meilen können variieren.

    Verwandte Themen