11

iOS4.3以降をサポートするiOSアプリに取り組んでいます。一部のフレームワークのため、armv7sでアーカイブできないため、armv7sのサポートを削除しました。アプリケーションのパフォーマンスが低下しますか?armv7sを使用する利点は何ですか?

4

1 に答える 1

23

驚いたことに、2つの異なるアーキテクチャ用に生成されたマシンコードには多くの違いはありませんでした。全体として、armv7sコードはarmv7コードとそれほど変わらないように見えます。しかし、私の目を引いた2つの特定の違いがありました。

最初の違いは整数除算に影響します。armv7sアーキテクチャには、armv7アーキテクチャには存在しない2つの新しい整数除算命令があります。これらの整数除算命令は、armv7の関数として実装されており、armv7の同等の命令よりも少なくとも1桁遅くなっています。整数除算はアプリケーションで一般的であるため(Geekbenchでは100以上の場所で呼び出されます)、これらの新しい命令により、すべてのアプリケーションのパフォーマンスが大幅に向上するはずです。

2番目の違いは、浮動小数点演算に影響します。Xcodeは、armv7とarmv7で異なる浮動小数点演算命令を使用します。Xcodeがarmv7に使用する命令は、いくつかの操作を1つの命令に結合します。これにより、Xcodeがarmv7に使用するいくつかの独立した命令よりも効率的になります。驚いたことに、これらの結合された浮動小数点命令はarmv7アーキテクチャに存在しますが、Xcodeでは使用されていません。なぜそうなるのかは不明です。armv7の場合、これらの組み合わされた命令はすべての浮動小数点命令のごく一部を表すため、おそらく利点はありますが、どの程度の影響があるかを判断するのは困難です。

armv7コードとarmv7sコードの間には他にも違いがありますが、上記で概説した整数除算および浮動小数点演算の変更と比較すると、それらはマイナーです。armv7sをビルドすることで、アプリケーションはどのくらいのメリットがありますか?生成されたコードを調べるだけではわかりませんが、開発者の場合、特にアプリケーションが浮動小数点演算を使用している場合は、アプリケーションのarmv7sビルドを出荷するのに時間と労力を費やす価値があると思います。

このリンクから情報を入手しました。詳細については、このリンクを参照してください。ありがとうございます。

armv7とarmv7sの違い

于 2012-12-11T07:45:57.867 に答える