AndroidのNDK - それはストレートARMコードまたはちょうど親指をサポートしています
-
24-09-2019 - |
質問
私は、私たちの製品のためのAndroidプラットフォームを評価するために求められていると私は様々なオプションで探しています、私はちょうど今、表面に傷をつけていて、私を悩ませている一つのことは、私のようにコードをコンパイルする方法を見ることができないということですストレートARMコード(なし親指)、私は親指が遅く実行され、我々は我々のコードの主要なセクションでのパフォーマンスが必要になります知っています。
I のそれだけ-march
ファイルのLOCAL_CFLAGS
にAndroid.mk
フラグを設定する必要がありますが、私は仕事に...
缶誰ヘルプ?
解決
Android.mk
におけるモジュールについては、次のフラグを指定する直ARMコードがコンパイルされます。
LOCAL_ARM_MODE := arm
の最適化を有効にすることも助けます:
LOCAL_CFLAGS := -O3
他のヒント
あなたはARM、親指、または両者の組み合わせで構築することができます。
あなたがLOCAL_SRC_FILES
をリストしMyFile.c
でmakefileで、、、MyFile.c.arm
を指定します(ソースファイルだけのリストにそれを行う、ディスク上のファイルの名前を変更しないでください)。この規則は、パフォーマンス重視であるコードのためのAndroid全体で使用(または単にいくつかの理由でARMにする必要がある)されます。
通常のノートはもちろん、適用されます:Thumbコードが何かを達成するためのより多くの命令を必要とする傾向があるが、コードが少し遅くなり、通常でも公正が小さいビットように、各命令は、半分のサイズです。いくつかの状況では小さいサイズは、ARMのCPUで(小さな)のキャッシュとのより良いフィット感を可能にし、実際に速い可能性があります。
所属していません StackOverflow