Question

Je l'ai entendu, il pourrait être une bonne idée de désactiver « compilation pour le pouce » dans les paramètres d'un iPhone cible pour augmenter les performances. Je vais avoir du mal à trouver ce paramètre si. Depuis que je ne pouvais pas trouver dans mon projet actuel, j'ai décidé de faire une nouvelle (où je pouvais trouver et régler) et copier mes fichiers sur (et également mettre à jour toutes les libs que je utilise en même temps ).

Mais maintenant, il semble que ce paramètre a disapperad de ce nouveau projet a également. Peu importe ce que je choisis SDK, simulateur ou un appareil, le réglage ne sera pas affiché dans les paramètres cibles! Je ne semblent toutefois avoir encore une variable appelée GCC_THUMB_SUPPORT dans la catégorie « défini par l'utilisateur » tout à coup. Qu'est-ce que cela?

J'ai essayé de faire une nouvelle cible, mais le réglage ne sera pas affiché en ce que soit (même pas GCC_THUMB_SUPPORT).

Était-ce utile?

La solution

GCC_THUMB_SUPPORT est la variable à droite. Il suffit de le mettre à NO pour désactiver la génération de code POUCE.
Une règle générale est, pour le désactiver si votre code est Virgule flottante lourd :)
En savoir plus sur cette .

Mise à jour: Les conseils de compilation pour l'ensemble de l'instruction POUCE n'est plus valide (en fait depuis l'iPhone 3GS).

Autres conseils

J'ai trouvé que les paramètres du compilateur ( « GCC 4.2 - Génération de code », « CCG 4.2 - langue », etc.) n'apparaissent dans la fenêtre Paramètres de génération d'information cible lorsque le SDK actif est réglé sur l'appareil - et la catégorie montre que lorsque le SDK actif « défini par l'utilisateur » est Simulator.

Et oui, la désactivation de la compilation du pouce peut être une grande aide à la performance si vous avez affaire avec beaucoup de mathématiques à virgule flottante (par exemple le traitement audio à virgule flottante). Bien que ce n'est pas, bien sûr, un tout usage accélération magique (et le code censé être compilé persicaire peut courir plus vite dans certaines situations), de sorte que vous trouverez probablement que la désactivation de pouce utile si votre code a ce genre de goulot d'étranglement.

"Compiler pour le pouce" devrait sous Target / Get Info / GCC 4.2 - Génération de code . Si ce n'est pas là (je serais surpris si ce n'est pas), définissez la variable définie par l'utilisateur.

Gardez à l'esprit que cela améliore les performances que dans un cas bien précis que vous devez comprendre avant de jongler avec.

Le jeu d'instructions standard pour ARM est de 4 octets. L'utilisation de « Compile pour le pouce », le compilateur est capable d'utiliser des instructions 2 octets. Il en résulte une bibliothèque beaucoup plus petite, mais aussi un plus lent (un peu discutable). Plus critique, il y a des problèmes liés à l'exécution sous ARMv6. Dans notre cas, nous ne pouvions pas générer une sortie stable de MonoTouch (solution dans MT4.0 alpha). Dans Xcode, vous pouvez trouver le réglage en cliquant sur votre cible, et la recherche sous construction et la recherche de « pouce ». Le mien est du CCAG 4.2 -. Génération de code, mais il est parfois sous LVVM GCC 4.2

Compiler pour le pouce

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top