O que fazer para obter melhor desempenho?

3 respostas
R

Galera, um projeto foi concluido pela equipa na qual faço parte, e preciso implantar, para que comece a ser executado em tempo de produção, so que os micros que vao rodar esse jar nao sao muito potentes digamos que sao micros semi-novos com no maximo 256 de RAM e obviamente como java e um pouco pesado o processo sera mais lento do que nas maquinas que usamos para desenvolver…a pergunta e a seguinte…existe algo que eu posso fazer para tornar este jar mais leve, que utilize menos memoria ou coisas do tipo?

Obrigado

3 Respostas

M

Tem muitas coisas, tipo reescrever tudo denovo.
Não dá para fazer milagre. Se o software como está escrito pede muita memória, não há santo que resolva, ou faz uma medição(com uso de um profiler) para ver onde está o gargalo ou se conforma.

Até!

V

Em primeiro lugar, não especule, meça. Procure um bom profiler (o Netbeans já possui um) e veja quais são os métodos que são os reais gargalos de sua aplicação.

Otimize esses métodos. Algumas técnicas para melhorar a performance são:

  1. Use algoritmos mais eficientes.
  2. Faça cache de objetos (pode ser muito útil se evitar acessos ao BD ou ao disco), mas consome memória;
  3. Use lazy-loading para não concentrar o tempo de carga dos objetos;
  4. Procure reduzir o número de threads concorrentes ao mínimo possível.

Quanto a memória:

  1. Procure objetos que estão sendo criados, mas não estão sendo destruídos. É comum esquecer instâncias referenciadas em listas ou arrays, por exemplo.
  2. Maximize o compartilhamento de objetos imutáveis;

Otimização torna o código mais inflexível e mais ilegível, portanto, volto a frisar: otimize apenas nos pontos de gargalo de sua aplicação. No resto, priorize um código legível e bem estruturado.

Há um delicado trade-off na sua aplicação. Técnicas para otimização usam memória e ténicas para reduzir o uso de memória geralmente requerem processamento. Então, sempre que modificar, refaça o profiling e veja se a situação melhorou ou não.

Se não melhorou, desfaça a modificação, novamente dando preferência para um código legível ao invés de otimizado nos lugares onde isso não é um problema.

A

Você consegue um desempenho aceitável em máquinas com 64mb inclusive, procure no site do javaone sobre boas práticas para aplicações swing, lá vc vai ler sobre técnicas como lazy loading e outras.

Um site que uso como referência para performance é www.javaperformancetuning.com .

[]s

Criado 21 de agosto de 2007
Ultima resposta 21 de ago. de 2007
Respostas 3
Participantes 4