我有一个使用NDK执行大量浮点数计算的Android应用程序。
我刚刚获得了一台新的Galaxy Nexus手机。令我惊讶的是,我的应用程序运行速度比预期要慢得多。我怀疑这是因为大多数设备都使用硬件加速而Galaxy Nexus没有。如果我执行一个不需要浮点数计算的操作,Galaxy Nexus的表现符合我的预期。
以下是几个设备的CPU / GPU规格和样本时间。我已经对统计数据进行了归一化处理以考虑显示分辨率。
我刚刚获得了一台新的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重新编译我的代码,但我不明白为什么这会有如此显著的差异。你知道是什么问题吗?