Galera, alguém conhece algum livro, site qualquer coisa que tenha como assunto performance em java.
Algo como best pratices para ganho de performance de uma aplicação java, o que é melhor ou pior para a JVM.
Ex:. use enums ao invés de objetos statics por isso, isso e aquilo…
Supondo que é java 1.5 ou +.
Sei que tem um livro que todos deveriam ler, se chama Effective Java do Joshua Bloch…
E
entanglement1 like
Algumas dicas minhas:
Evite “+=” com strings, isso é veneno puro. Não importa se é em C# ou Java, o problema é exatamente o mesmo. Saiba usar o StringBuilder.
Veja se seu banco de dados está com os índices corretos e adequados para suas consultas.
Se for usar arquivos ou sockets, nunca acesse só um caracter ou um byte de cada vez. No mínimo, use um BufferedReader/Writer ou BufferedInput/OutputStream.
Evite chamar 200 vezes o mesmo getter em uma mesma expressão ou método. Não tenha medo de criar variáveis locais.
Se souber o que está fazendo, use double (ou talvez long) em vez de BigDecimal. O BigDecimal é muitas vezes usado indiscriminadamente porque não se parou para analisar o problema.
Se for criar algum web service, prefira usar REST a SOAP, exceto se você precisar usar SOAP por motivos de interoperabilidade.
Pense bem antes de fazer seu próprio código de ordenação ou busca. Pode ser que você esteja usando a estrutura de dados errada.
E
entanglement1 like
Quanto à história das enums ou objetos static, isso é só uma micro-otimização e não costuma fazer diferença nenhuma no mundo real. O correto, nesse caso, é usar o que for adequado para a legibilidade e manutenção de sua aplicação.
Fuja de mitos. Entenda corretamente os custos e benefícios de sincronização, final e objetos imutáveis. Há muitos mitos de performance envolvendo esses caras;
Conheça bem as tecnologias com as quais está trabalhando. Siga as boas práticas recomendadas pelo fabricante;
Não faça otimização prematura. Otimize só quando necessário.
Uma dica muito simples sobre performance, use (s.lenght() == 0) para verificar se uma String é vazia invés de .equals("").
O equals da classe String faz varias comparações desnecessarias para o caso de vazio, então é mais fácil comparar se seu tamanho é zero. Essa comparação foi encapsulada em isEmpty da classe String.
Em pequenos casos não faz muita diferença, mas quando voce precisa processar milhares de informações esse simples cuidado já traz alguma diferença visivel.
E
entanglement
Marky.Vasconcelos:
Uma dica muito simples sobre performance, use (s.lenght() == 0) para verificar se uma String é vazia invés de .equals("").
O equals da classe String faz varias comparações desnecessarias para o caso de vazio, então é mais fácil comparar se seu tamanho é zero. Essa comparação foi encapsulada em isEmpty da classe String.
Em pequenos casos não faz muita diferença, mas quando voce precisa processar milhares de informações esse simples cuidado já traz alguma diferença visivel.
Não se esqueça… evite se matar prematuramente pensando em performance, desenvolva sua aplicação com boas práticas e tudo mais, e na metida que vai finalizando as “partes”, ai sim tu vais trabalhando a performance onde for mais necessário.