iPhone für den Daumen kompilieren

8

Ich habe gehört, dass es eine gute Idee ist, "compile for thumb" in den Einstellungen eines iPhone-Ziels auszuschalten, um die Leistung zu erhöhen. Ich habe Probleme, diese Einstellung zu finden. Da ich es in meinem aktuellen Projekt nicht finden konnte, beschloss ich, ein neues zu erstellen (wo ich es finden und einstellen konnte) und meine Dateien dorthin zu kopieren (und auch alle Bibliotheken, die ich gleichzeitig benutze, zu aktualisieren) ).

Aber jetzt scheint es, als ob diese Einstellung auch von diesem neuen Projekt verschwunden ist. Egal, welches SDK ich verwende, Simulator oder Gerät, die Einstellung wird nicht in den Zieleinstellungen angezeigt! Ich habe jedoch plötzlich eine Variable namens GCC_THUMB_SUPPORT unter der Kategorie "Benutzerdefiniert" plötzlich. Was ist das?

Ich habe versucht, ein neues Ziel zu erstellen, aber die Einstellung wird auch nicht angezeigt (nicht einmal GCC_THUMB_SUPPORT).

    
quano 22.09.2009, 14:19
quelle

4 Antworten

14

GCC_THUMB_SUPPORT ist die richtige Variable. Setzen Sie es einfach auf NEIN, um die THUMB-Code-Generierung zu deaktivieren.
Eine allgemeine Regel von THUMB ist es, es zu deaktivieren, wenn Ihr Code schwer ist Mehr dazu hier .

Aktualisierung:
Der Hinweis zum Kompilieren für den THUMB-Befehlssatz ist nicht mehr gültig (tatsächlich seit dem iPhone 3GS).

    
Thomas Zoechling 22.09.2009, 14:23
quelle
3

Ich habe festgestellt, dass die Compilereinstellungen ("GCC 4.2 - Codegenerierung", "GCC 4.2 - Sprache" usw.) nur im Fenster "Buildeinstellungen für Zielinfo" angezeigt werden, wenn das Active SDK auf Gerät - und eingestellt ist Die Kategorie "Benutzerdefiniert" wird nur angezeigt, wenn das Active SDK Simulator ist.

Und ja, das Deaktivieren der Thumb-Compilierung kann eine große Hilfe für die Performance sein, wenn Sie mit vielen Fließkomma-Berechnungen arbeiten (z. B. Fließkomma-Audioverarbeitung). Obwohl es natürlich keine magische Allzweck-Beschleunigung ist (und angeblich Thumb-kompilierter Code kann in manchen Situationen schneller laufen), wird Thumb wahrscheinlich nur dann nützlich sein, wenn Ihr Code diesen Engpass aufweist.

    
alex rae 02.11.2009 10:03
quelle
2

"Kompilieren für Thumb" sollte unter Ziel / Get Info / GCC 4.2 - Codegenerierung sein. Wenn es nicht dort ist (würde mich wundern, wenn es nicht ist), setze die benutzerdefinierte Variable.

Beachten Sie, dass dies die Leistung nur unter einer begrenzten Anzahl von Umständen verbessert, die Sie verstehen sollten, bevor Sie damit herumspielen.

    
mikestew 22.09.2009 16:32
quelle
2

Der Standard-Befehlssatz für ARM ist 4 Bytes. Mit "Kompilieren für Thumb" kann der Compiler 2-Byte-Anweisungen verwenden. Dies führt zu einer viel kleineren Bibliothek, aber auch zu einer langsameren (etwas umstritten). Kritischer gesehen gibt es Probleme beim Ausführen unter ARMv6. In unserem Fall konnten wir keine stabile Ausgabe von Monotouch generieren (behoben in MT4.0 Alpha). In Xcode finden Sie die Einstellung, indem Sie auf Ihr Ziel klicken und unter Erstellen nach "Daumen" suchen. Meins ist unter GCC 4.2 - Code Generation, aber manchmal ist es unter LVVM GCC 4.2.

    
tofutim 20.03.2011 22:56
quelle

Tags und Links