質問
パフォーマンスを向上させるには、iPhone ターゲットの設定で「親指用にコンパイル」をオフにするのが良いかもしれないと聞いたことがあります。ただし、この設定を見つけるのに少し苦労しています。現在のプロジェクトではそれが見つからなかったので、新しいプロジェクトを作成し(見つけて設定できる場所)、そこにファイルをコピーすることにしました(同時に使用しているすべてのライブラリも更新しました) )。
しかし、この設定はこの新しいプロジェクトからも消えてしまったようです。シミュレーターやデバイスなど、どの SDK を選択しても、その設定はターゲット設定に表示されません。しかし、突然「ユーザー定義」カテゴリの下に GCC_THUMB_SUPPORT という変数がまだ残っているようです。これは何ですか?
新しいターゲットを作成しようとしましたが、設定はそこにも表示されません(GCC_THUMB_SUPPORTさえも)。
他のヒント
私は、コンパイラの設定があることがわかりましたし、アクティブSDKのシミュレータであるとき、「ユーザー定義」カテゴリのみ現れます。
そして、あなたは浮動小数点演算(例えば、浮動小数点オーディオ処理)の多くを扱っている場合は、はい、親指のコンパイルを無効にすると、パフォーマンスに大きな助けとなることができます。それはないですけれども、あなたはおそらく、あなたのコードは、ボトルネックのようなものを持っている場合に便利親指を無効にすることを見つけることができますので、当然のことながら、万能の魔法のスピードアップは、(そしておそらく親指コンパイルされたコードは、より速く、いくつかの状況で実行することができます)。
「親指用にコンパイル」 すべき 下にいる ターゲット/情報の取得/GCC 4.2 - コード生成. 。それが存在しない場合は (存在しないと驚くでしょう)、ユーザー定義変数を設定します。
これによりパフォーマンスが向上するのは限られた状況下でのみであることに注意してください。これをいじる前に理解しておく必要があります。
ARMのための標準的な命令セットは、4バイトです。 「親指用にコンパイル」を使用して、コンパイラは2バイト命令を使用することができます。これは、はるかに小さい図書館になり、また、より遅い1(多少議論の余地)。もっと批判的に、ARMv6の下で実行されているとの問題があります。私たちのケースでは、我々は、MonoTouchで(MT4.0アルファで修正)からの安定した出力を生成することができませんでした。 Xcodeで、あなたのターゲットをクリックすると、ビルドの下に見て、「親指」を検索して設定を見つけることができます。コード生成、時にはそれはLVVM GCC 4.2の下にある
- 鉱山は、GCC 4.2の下にあります。