Performance jar ou .class

7 respostas
D

Olá pessoal,

Estamos desenvolvendo uma aplicação (ERP), e atualmente
possui 4000 classes.
Alguém sabe se existe alguma diferença, quanto a performance,
entre uma aplicação empacotada em um Jar e outra em
que os .class estejam disponíveis em uma pasta.

Grato,

Douglas

7 Respostas

T

Se você criar o .jar com a opção 0 (zero = sem compressão), acho que você vai ter o melhor desempenho - a sua aplicação não vai ficar demorando para abrir um arquivo dentro dos diretórios, e não vai gastar tempo descomprimindo o arquivo. É que o Java deixa o .jar mapeado em memória virtual, e deixa o arquivo “aberto direto”. Mas isso é só um chute, e como você vai ter de carregar também mais classes (.jar de bibliotecas aplicativas e outras coisas), não é isso que vai deixar seu programa mais lento.

cv1

Cara, se o ClassLoader ta sendo seu problema de performance, parabens: vc ja deve ter terminado de otimizar pelo menos 3999 dessas classes pra usar I/O assincrono, nao usa banco de dados, todas as suas estruturas de dados estao PERFEITAS, e praticamente a unica coisa que sobra no profiler eh o java.lang.Class.loadClass().

Novamente, meus parabens.

louds

Ou então eles estão recarregando as classes a cada segundo para garantir que vai estar sempre rodando a última versão.

fmeyer

nao precisa nem carregar a cada 5 mn … que developer normal em sã conciencia carregaria 4000 na memoria de uma vez?

rodrigopmatias

fmeyer:
nao precisa nem carregar a cada 5 mn … que developer normal em sã conciencia carregaria 4000 na memoria de uma vez?
uma aplicação de cluster faz isso. meu projeto de monografia fazia varredura para disponibilizar novos objetos e atualizar objetos antigos. mas o tempo ficava a criterio do administrador.

D

Não é que eu vá carregar as 4000 classes de uma só vez, elas
compõe todo um sistema usando Swing (não Web),
e a questão sobre .class ou .jar é mais por curiosidade mesmo,
não que eu esteja tão preocupado em melhorar o desempenho
do mesmo desta forma.
Agradeço os comentários que são sempre úteis.

Douglas

rodrigopmatias

boa, mas eu acho que .class deve carrega muito mais rapido do que quando eles estão empacotados pois, a logica seria que os arquivos compactados teriam que ser descompactados, o fato de usar a compactação zero poderia melhorar a performace mas mesmo assim o classloader ainda tem que fazer o split dos .class

Criado 9 de novembro de 2006
Ultima resposta 10 de nov. de 2006
Respostas 7
Participantes 6