O que fazer para obter melhor desempenho?

3 respostas
rodolfogs8

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

maquiavelbona

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é!

ViniGodoy

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.

aleck

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