iPhone アプリのコンパイルでは、「最適化された」アーキテクチャ (armv7 のみ) と標準の armv6/armv7 アーキテクチャの設定があります。
armv7 のみのアーキテクチャをコンパイルする利点/結果は何ですか?
iPhone アプリのコンパイルでは、「最適化された」アーキテクチャ (armv7 のみ) と標準の armv6/armv7 アーキテクチャの設定があります。
armv7 のみのアーキテクチャをコンパイルする利点/結果は何ですか?
プログラムでOpenGLES2.0(armv7をサポートするデバイスでのみサポートされている)が必要な場合を除き、標準のfat(armv6 / armv7)バイナリをコンパイルする必要があります。ファットバイナリは、基本的に2つ(またはそれ以上)のMach-Oバイナリが接着されており、最初に1つのヘッダーページがあります。パフォーマンスコストはごくわずかです。動的ローダーは、ロードするアーキテクチャを決定するために、ヘッダーページに対して追加のページフォールトを実行する必要があります。
armv7のみをビルドすると、実行可能ファイルのサイズは基本的に半分になりますが、実行可能ファイルがそもそもそれほど大きくなる可能性はほとんどありません。ホストで「size」および「otool」コマンドを使用して、アプリのバイナリのさまざまなセクションに関する詳細情報を取得できます。たとえば、「size -archarmv6build / Release / MyApp.app/MyApp」はさまざまなサイズを取得しますバイナリのarmv6バージョンのセクション、「size -arch armv7 build / Release / MyApp.app / MyApp」は、バイナリのarmv7バージョンのさまざまなセクションのサイズを取得し、明らかに「ls -l build / Release /MyApp」 .app / MyApp "は、バイナリの実際のファイルサイズを取得します。
実行可能ファイルが小さいほど、アプリ ストアからのダウンロードが速くなります。ただし、armv7 以外のデバイスを切り取ります。