Maneira rápida de realizar a adição de 2 grandes matrizes de flutuação no Android. JNI opcional ou OpenGL es

StackOverflow https://stackoverflow.com/questions/2573622

Pergunta

Eu simplesmente preciso adicionar floatArray1 ao floatArray2 armazenando o resultado em floatArray2 .. nenhuma terceira matriz .. todas as matrizes são unidimensionais, mas são muito grandes ... provavelmente tão grandes quanto o sistema operacional me permitirá. Max que eu precisaria é de duas matrizes de flutuação com 40.000 carros alegóricos cada ... mas eu poderia fugir com 1/10 que suponho que o mínimo.

Adoraria fazer isso em 1/30 ou 1/60 de segundo, mas isso não parece possível? Além disso, se o código for JNI, NDK ou OpenGL ES, tudo bem. O Android tem um idioma de montagem ou gosta de código de máquina que eu poderia usar de alguma forma?

Foi útil?

Solução

Como um flutuador vale 32 bits e você tem 40000 carros alegóricos em cada matriz necessária:

40000 * 32 * 2 = 2,560.000 bits

Que é 320.000 byte. Não é de muita memória que eu diria, pois o limite padrão para um aplicativo Android é de 16 MB.

Em relação ao desempenho, você definitivamente ganharia alguma velocidade usando o JNI. O OpenGL não lhe daria benefício suficiente, eu acho que, já que a criação de contexto do OpenGL também leva algum tempo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top