Desempenho do aplicativo Java vs C - Gary explica

Autor: John Stephens
Data De Criação: 23 Janeiro 2021
Data De Atualização: 1 Julho 2024
Anonim
Java vs C app performance – Gary explains
Vídeo: Java vs C app performance – Gary explains

Contente


Começando com a pior pontuação, o Android 5.0 de 32 bits, mostra que o código Java ficou 296% mais lento que C ou, em outras palavras, 4 vezes mais lento. Novamente, lembre-se de que a velocidade absoluta não é importante aqui, mas a diferença no tempo necessário para executar o código Java em comparação com o código C, no mesmo dispositivo. O Android 4.4 KitKat de 32 bits com sua Dalvik JVM é um pouco mais rápido, com 237%. Quando o salto para o Android 6.0 Marshmallow é iniciado, as coisas começam a melhorar drasticamente, com o Android 6.0 de 64 bits produzindo a menor diferença entre Java e C.

O segundo teste é o teste do número primo, usando tentativa por divisão. Conforme observado acima, esse código usa 64 bitsgrandes inteiros e, portanto, favorecerá os processadores de 64 bits.


Como esperado, os melhores resultados vêm do Android rodando em processadores de 64 bits. Para o Android 6.0 de 64 bits, a diferença de velocidade é muito pequena, apenas 3%. Enquanto no Android 5.0 de 64 bits é de 38%. Isso demonstra as melhorias entre o ART no Android 5.0 e o Otimizando compilador usado pelo ART no Android 6.0. Como o Android 7.0 N ainda é um beta de desenvolvimento, não mostrei os resultados, no entanto, ele geralmente apresenta um desempenho tão bom quanto o Android 6.0 M, se não melhor. Os piores resultados são para as versões de 32 bits do Android e, estranhamente, o Android 6.0 de 32 bits produz os piores resultados do grupo.

O terceiro e último teste executa uma função matemática pesada para um milhão de iterações. A função faz aritmética de número inteiro e aritmética de ponto flutuante.


E aqui, pela primeira vez, temos um resultado em que o Java realmente roda mais rápido que o C! Há duas explicações possíveis para isso e ambas têm a ver com otimização e o Ootimizaçãocompilador do ARM. Primeiro, o Ootimização O compilador poderia ter produzido um código mais ideal para o AArch64, com melhor alocação de registro etc., do que o compilador C no Android Studio. Um compilador melhor sempre significa melhor desempenho. Também pode haver um caminho através do código que o OotimizaçãoO compilador calculado pode ser otimizado porque não tem influência no resultado final, mas o compilador C não detectou essa otimização. Eu sei que esse tipo de otimização foi um dos grandes focos para o Ootimizaçãocompilador no Android 6.0. Como a função é apenas uma invenção pura da minha parte, poderia haver uma maneira de otimizar o código que omite algumas seções, mas não o vi.O outro motivo é que a chamada dessa função, mesmo um milhão de vezes, não faz com que o coletor de lixo seja executado.

Assim como no teste de números primos, este teste usa 64 bitsgrandes números inteiros, e é por isso que a próxima melhor pontuação vem do Android 5.0 de 64 bits. Em seguida, vem o Android 6.0 de 32 bits, seguido pelo Android 5.0 de 32 bits e, finalmente, o Android 4.4 de 32 bits.

Embrulhar

No geral, o C é mais rápido que o Java, no entanto, a diferença entre os dois foi drasticamente reduzida com o lançamento do Android 6.0 Marshmallow de 64 bits. Obviamente, no mundo real, a decisão de usar Java ou C não é preto e branco. Enquanto C tem algumas vantagens, toda a interface do usuário do Android, todos os serviços do Android e todas as APIs do Android foram projetadas para serem chamadas a partir de Java. C só pode ser usado quando você deseja uma tela em branco do OpenGL e deseja desenhar nessa tela sem usar APIs do Android.

No entanto, se seu aplicativo tiver algum trabalho pesado para fazer, essas peças poderão ser portadas para C e você poderá ver uma melhoria na velocidade, mas não tanto quanto você poderia ter visto.

O BlackBerry KEY2 é o próximo telefone BlackBerry da TCL. Ele inclui algun novo recuro impreionante, além de melhoria em comparação com o BlackBerry KEYone anterior. Vamo dar ...

O BlackBerry Key2 cauou um grande etrago quando chegou no início dete ano, empretando o melhore apecto do KeyOne e refinando-o para entuiata do hardcore. Embora gotáemo dee dipoitivo, muito ...

Mais Lendo