• Save
Curso de J2ME - Parte 04 - Otimização
Upcoming SlideShare
Loading in...5
×
 

Curso de J2ME - Parte 04 - Otimização

on

  • 357 views

Curso de J2ME - Parte 04 - Otimização

Curso de J2ME - Parte 04 - Otimização

Statistics

Views

Total Views
357
Views on SlideShare
355
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 2

http://www.leonardomelosantos.com.br 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Curso de J2ME - Parte 04 - Otimização Curso de J2ME - Parte 04 - Otimização Presentation Transcript

  • J2ME J2ME Otimização Leonardo Melo Santos leonardomelosantos@gmail.com
  • J2METópicos••• Otimização Porque otimizar? O que fazer para otimizar?• Tipos de otimização• Práticas de otimização
  • J2MEOtimização No ambiente computacional, aplicar técnicas deotimização é uma tarefa de extrema importância e relevância. Quando estamos falando de um ambiente para dispositivos móveis, torna-se fundamental otimizar.
  • J2MEPorque otimizar?• Limitações do hardware (processamento, armazenamento, memória, ...)• Tamanho da aplicação final. – Em determinados dispositivos, o tamanho máximo de uma aplicação JME não pode ultrapassar certa quantidade de kilobytes. – Espaço de armazenamento é escasso. Quanto menor o tamanho, maior o número de aplicações instaladas.• Custo de telefonia. – Quanto mais rápido e quanto menos bytes forem enviados/recebidos, mais barato sai o custo da conexão. – Ao baixar uma aplicação, quanto menor, menor o custo e menos tempo de espera.• Pequenas mudanças podem trazer benefícios consideráveis.
  • J2MEPorque otimizar? CUIDADO! Porque otimizar se nem testado foi? Porque otimizar se aplicação atende às necessidades do usuário? Tempo é muito valioso nos dias de hoje.• Martin J. Hells em “J2ME Game Programming” – “Não tente otimizar código que você pensa que é lento, otimize aquilo que você sabe que é lento”.
  • J2MEO que fazer para otimizar?• Aplicar práticas para melhorar a performance e a aplicação de uma maneira geral.• Diminuir o tamanho do código-fonte, do aplicativo como um todo e das imagens PNG.• Usar Obfuscators – O objetivo principal de obfuscation é dificultar a engenharia reversa do código Java™. – Obfuscators também reduzem o tamanho do código- fonte, “renomeando” identificadores e assinaturas de métodos.
  • J2METipos de otimização• Otimização de alto nível – Foco seria o desenho do código-fonte e seus algoritmos. – Dentre as possíveis soluções, a melhor em custo X benefício. – Algoritmo correto = solução adequada• Otimização de baixo nível – Atenção direcionada para pequenos trechos de código (às vezes, algumas linhas de código). – Maioria das vezes a atenção é voltada para o que pode ser melhorado na implementação de métodos, na sua declaração e nos seus parâmetros de entrada.
  • J2MEPráticas de otimização (1/9)• Evitar heranças principalmente as muito profundas (classe que herda de classe que herda de classe etc.) – Classes derivadas tem que gastar tempo e espaço com dados herdados mesmo que sem usá-los – Um método quando não encontrado é procurado na hierarquia de classes o que gasta tempo e processamento – Caso a subclasse não use muito dos métodos e dados da superclasse, analise se não é possível criar uma nova classe
  • J2MEPráticas de otimização (2/9)• Evitar inner classes (classes aninhadas) e classes que realmente sejam desnecessárias. – Com inner classes, o compilador inclui código extra para permitir a classe aninhada acessar os dados privados da classe de fora.
  • J2MEPráticas de otimização (3/9)• Minimizar criação de objetos. – Consome memória – Rouba ciclos de processamento – Leva a coleta de lixo, o que rouba mais ciclos• Evitar criação de objetos dentro de métodos. – Se possível, passe o objeto como parâmetro.
  • J2MEPráticas de otimização (4/9)• Evitar concatenações de Strings• Usar StringBuffer – Fácil de usar e destruir. – Menos consumo de memória. – Realocação pode ser evitada criando um StringBuffer com tamanho de buffer adequado a aplicação.
  • J2MEPráticas de otimização (5/9)• Evitar gets() e sets(). Atributos dos objetos poderiam ser public. – Desnecessariamente, a aplicação fica mais lenta e código- fonte fica maior.
  • J2MEPráticas de otimização (6/9)• Evitar declarações e instanciações dentro de iterações.
  • J2MEPráticas de otimização (7/9)• Evitar flags do tipo String. Ideal seria usar algum tipo primitivo.
  • J2MEPráticas de otimização (8/9)• Reduzir o número de parâmetros de entrada no métodos.
  • J2MEPráticas de otimização (9/9)• Destruir os objetos assim que tiver a certeza de não mais usá-los.
  • J2ME Dúvidas?