Pergunta

Atualmente, estou escrevendo um artigo sobre a plataforma Android. Depois de algum pesquisa , é claro que Dalvik tem espaço para melhorias. Eu queria saber, o que você acha que seria o melhor uso do tempo de um desenvolvedor com este objetivo?

compilação JIT parece ser um dos grandes, mas então eu também ouvi isso seria de uso limitado em uma máquina desse tipo de recursos baixa. Alguém tem um recurso ou dados que corrobora esta afirmação?

Existem outras opções que devem ser considerados? Além de desenvolver um kit de desenvolvimento nativo robusto para ignorar o VM.

Para aqueles que estão interessados, há uma palestra que foi gravado e colocado on-line sobre o Dalvik VM .

Todos os pensamentos bem-vindos, como esta questão aparece subjetiva eu vou esclarecer que a resposta que eu vou aceitar deve ter alguma justificação para as alterações propostas. Quaisquer dados para apoiá-la, como a melhoria da Sun JVM quando foi introduzido, seria uma vantagem enorme.

Foi útil?

Solução

  1. Melhor coleta de lixo: compactação no mínimo (para eliminar os problemas de fragmentação de memória vivida hoje), idealmente menos intensivo da CPU em fazer a própria coleção (para reduzir as "Meu jogo taxas de quadros chupar" queixas)
  2. JIT, como você citar
  3. documentação suficiente para que, quando combinada com uma NDK, alguém suficientemente louco poderia compilar Dalvik bytecode para código nativo para uma opção de compilação AOT
  4. Faça isso separável do próprio Android, de tal forma que outros projetos possam experimentar com ele e contribuições da comunidade pode chegar em maior quantidade e em um rápido clipe

Eu tenho certeza que eu poderia vir acima outras idéias se você precisar deles.

Outras dicas

  1. JIT. O material sobre isso não ajudar é um monte de porcaria. Você pode ser mais seletivo sobre o código JIT, mas com 1 / 10th o desempenho de código nativo é sempre vai ser um fator limitante

  2. GC decente. Modernos coletores de lixo de gerações não têm grandes gagueja.

  3. código melhor análise. Há muitos casos onde alocações / liberta não precisam ser feitas, bloqueios mantidos e assim por diante. Ele permite que você escrever código limpo em vez de fazer otimizações que a máquina é melhor em

Em teoria a maioria das linguagens de nível superior (Java, Javascript, python, ...) deve estar dentro de 20% do desempenho de código nativo para a maioria dos casos. Mas isso requer o fornecedor de plataforma para gastar 100s + desenvolvedor homem anos. Sun Java está ficando bom. Eles também têm trabalhado nele por 10 anos.

Um dos principais problemas com Dalvik é o desempenho, o que é terrível que ouvi, mas uma das coisas que eu mais gosto é a adição de mais idiomas.

A JVM teve projetos comunitários recebendo Python e Ruby em execução na plataforma, e línguas, mesmo especiais, como Scala, Groovy e Encerramento desenvolvido para ele. Seria bom para ver estes (e / ou outros) na plataforma Dalvik também. Sun tem vindo a trabalhar na máquina Da Vinci, bem como, uma extensão de tipagem dinâmica da JVM, o que indica uma grande mudança longe do "uma língua fits all" filosofia de Sun tem seguido ao longo dos últimos 15 anos.

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