У меня есть приложение для Android , которое использует NDK для выполнения большого количества математических операций с плавающей запятой.
Я только что приобрел новый Galaxy Nexus. К моему удивлению, мое приложение работает НАМНОГО медленнее, чем должно. Я подозреваю, что это потому, что большинство устройств используют аппаратное ускорение, а Galaxy Nexus - нет. Если я выполню операцию, не требующую математики с плавающей запятой, Galaxy Nexus выполнит то, что я ожидал.
Здесь приведены характеристики процессора / графического процессора и примеры времени для нескольких устройств. Я нормализовал статистику с учетом разрешения экрана:
Droid
CPU: TI OMAP 3430 (ARM Cortex-A8 600 MHz underclocked to 550 MHz)
GPU: PowerVR SGX530
Instruction Set: ARMv7
Test Run: 1,980 pixels per second
Galaxy Nexus
CPU: TI OMAP 4460 (ARM Cortex-A9 dual-core 1.2 GHz)
GPU: PowerVR SGX540
Instruction Set: ARMv7
Test Run: 2,253 pixels per second
Droid Incredible
CPU: QSD8650 (Qualcomm Snapdragon 1 GHz)
GPU: Adreno 200
Instruction Set: ARMv7
Test Run: 4,571 pixels per second
У меня есть эта конфигурация в моем Application.mk
файле:
APP_ABI := armeabi armeabi-v7a
Я не перекомпилировал свой код с NDK-r7, но я не понимаю, почему это так сильно изменило бы ситуацию. Есть идеи, что не так?