質問

パフォーマンスを向上させるには、iPhone ターゲットの設定で「親指用にコンパイル」をオフにするのが良いかもしれないと聞いたことがあります。ただし、この設定を見つけるのに少し苦労しています。現在のプロジェクトではそれが見つからなかったので、新しいプロジェクトを作成し(見つけて設定できる場所)、そこにファイルをコピーすることにしました(同時に使用しているすべてのライブラリも更新しました) )。

しかし、この設定はこの新しいプロジェクトからも消えてしまったようです。シミュレーターやデバイスなど、どの SDK を選択しても、その設定はターゲット設定に表示されません。しかし、突然「ユーザー定義」カテゴリの下に GCC_THUMB_SUPPORT という変数がまだ残っているようです。これは何ですか?

新しいターゲットを作成しようとしましたが、設定はそこにも表示されません(GCC_THUMB_SUPPORTさえも)。

役に立ちましたか?

解決

GCC_THUMB_SUPPORT が正しい変数です。THUMB コード生成を無効にするには、これを NO に設定するだけです。
THUMB の一般的なルールは、コードが浮動小数点を使用している場合は無効にすることです:)
それについて詳しくは ここ.

アップデート:
THUMB 命令セット用にコンパイルするためのアドバイス はもう無効です (実際にはiPhone 3GS以来)。

他のヒント

アクティブSDKは、デバイスに設定されている場合、設定ウィンドウを構築するだけで、ターゲット情報に表示(、など - - 、「言語GCC 4.2」「コードの生成GCC 4.2」) -

私は、コンパイラの設定があることがわかりましたし、アクティブSDKのシミュレータであるとき、「ユーザー定義」カテゴリのみ現れます。

そして、あなたは浮動小数点演算(例えば、浮動小数点オーディオ処理)の多くを扱っている場合は、はい、親指のコンパイルを無効にすると、パフォーマンスに大きな助けとなることができます。それはないですけれども、あなたはおそらく、あなたのコードは、ボトルネックのようなものを持っている場合に便利親指を無効にすることを見つけることができますので、当然のことながら、万能の魔法のスピードアップは、(そしておそらく親指コンパイルされたコードは、より速く、いくつかの状況で実行することができます)。

「親指用にコンパイル」 すべき 下にいる ターゲット/情報の取得/GCC 4.2 - コード生成. 。それが存在しない場合は (存在しないと驚くでしょう)、ユーザー定義変数を設定します。

これによりパフォーマンスが向上するのは限られた状況下でのみであることに注意してください。これをいじる前に理解しておく必要があります。

ARMのための標準的な命令セットは、4バイトです。 「親指用にコンパイル」を使用して、コンパイラは2バイト命令を使用することができます。これは、はるかに小さい図書館になり、また、より遅い1(多少議論の余地)。もっと批判的に、ARMv6の下で実行されているとの問題があります。私たちのケースでは、我々は、MonoTouchで(MT4.0アルファで修正)からの安定した出力を生成することができませんでした。 Xcodeで、あなたのターゲットをクリックすると、ビルドの下に見て、「親指」を検索して設定を見つけることができます。コード生成、時にはそれはLVVM GCC 4.2の下にある

- 鉱山は、GCC 4.2の下にあります。

親指用にコンパイル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top