Otimização bytecode Java na plataforma J2ME

Detalhes bibliográficos
Ano de defesa: 2004
Autor(a) principal: Pinto Camara, Tarcisio
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ufpe.br/handle/123456789/2567
Resumo: Aplicações para os dispositivos móveis, como telefones celulares e pagers, implementadas em J2ME (Java 2 Micro Edition) são desenvolvidas sob severas restrições de tamanho e desempenho do código. A indústria tem adotado ferramentas de otimização, como obfuscators e shrinkers, que aplicam otimizações de programa inteiro (Whole Program Optimizations) considerando que o código gerado não será estendido ou usado por outras aplicações. Infelizmente, os desenvolvedores freqüentemente não conhecem suficientemente nestas ferramentas e continuam sacrificando a qualidade do código na tentativa de otimizar suas aplicações. Este trabalho apresenta um estudo original identificando a efetividade das otimizações mais comuns nos obfuscators. Este estudo mostra também que a otimização de Method Inlining, conhecida pelos benefícios de desempenho, tem sido negligenciada por estas ferramentas por normalmente esperarse que ela tenha efeito negativo sobre o tamanho de código. Assim, este trabalho contribui com uma implementação de method inlining entre classes e fundada no princípio de otimização de programa inteiro, capaz de melhorar tanto o tamanho do código como o desempenho da aplicação, ao remover cerca de 50% dos métodos alcançáveis. Finalmente, na tentativa de ajudar os desenvolvedores a tirar o melhor proveito destas ferramentas, o estudo inclui também um guia de boas práticas de programação considerando as otimizações implementadas pelos obfuscators