Mam Android application, która używa NDK do wykonywania dużej ilości matematyki zmiennoprzecinkowej.Android zmiennoprzecinkowa wydajność matematyczna
Właśnie kupiłem nowy Galaxy Nexus. Ku mojemu zaskoczeniu moja aplikacja działa DUŻO wolniej niż powinna. Podejrzewam, że tak jest, ponieważ większość urządzeń używa akceleracji sprzętowej, a Galaxy Nexus nie. Jeśli wykonam operację, która nie wymaga matematyki zmiennoprzecinkowej, Galaxy Nexus sprawdzi, jak bym się spodziewał.
Oto specyfikacje procesora/procesora graficznego i czasy próbkowania dla kilku urządzeń. Mam znormalizowane statystyki wziąć pod rozdzielczość ekranu rachunku:
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
mam tę konfigurację w moim Application.mk
pliku:
APP_ABI := armeabi armeabi-v7a
nie zostały ponownie skompilowane mój kod z NDK-R7, ale Nie rozumiem, dlaczego spowodowałoby to tak dramatyczną różnicę. Masz pojęcie, co jest nie tak?
Czy można określić ilościowo "DUŻO wolniej"? – WarrenFaith
@WarrenFaith Zaktualizowałem pytanie rzeczywistymi liczbami. – dbyrne