Математическая производительность Android с плавающей запятой

У меня есть приложение для Android , которое использует NDK для выполнения большого количества математических операций с плавающей запятой.

Я только что приобрел новый Galaxy Nexus. К моему удивлению, мое приложение работает НАМНОГО медленнее, чем должно. Я подозреваю, что это связано с тем, что большинство устройств используют аппаратное ускорение, а Galaxy Nexus - нет.Если я выполняю операцию, не требующую вычислений с плавающей запятой, Galaxy Nexus работает так, как я ожидал.

Вот спецификации CPU / GPU и примерные тайминги для нескольких устройств. Я нормализовал статистику с учетом разрешения экрана:

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, но Я не понимаю, почему это имеет такое разительное значение. Есть идеи, что не так?

7
задан dbyrne 23 December 2011 в 18:04
поделиться