Execução lenta


Galera,

Fiz uma aplicação usando swing e acessando um BD em access, o problema é o seguinte. Quando escolho uma opção de mostrar um JTable na aplicação funciona na minha maquina de casa tranquilamente (minha maquina tem 256MB) já no do trabalho ela trava ( Lentium 100 de 64MB). Só que essa apliação tem que rodar no trabalho

Minha pergunta é:
Quando eu transforma minha aplicação em um .jar ela vai ficar mais rapida?
Me sujeriram trocar o BD por MySQL, realmente fica muito mais rapido?
Tem alguma API ou Artigo para Otmização de codigo?

Valew !!!

se não forem muitas informações que você está trazendo do BD, e mesmo assim a aplicação ficar lenta, é culpa do Swing.

Infelismente o Swing exige um processador mais ou menos, e principalmente bastante memória RAM, no caso do P 100 com 64de Ram, vai realmente ficar muito lento, independente de Banco de Dados.

só para você fazer um teste, monta um aplicativo, onde você apenas monta telas, sem BD, e verifica se assim mesmo fica lento…

Agora se vc quer otimizar algo, você pode otimizar no caso das Collection, por exemplo, usar ArrayList invés de Vector, ou se souber o tamanho certo, usar uma array ao invés de alguma Collection.

Respondendo suas perguntas

Quando eu transforma minha aplicação em um .jar ela vai ficar mais rapida?
Não, a velocidade de sua aplicação não ficara mais rapida simplesmente agrupando as classes dentro de um arquivo jar.

Me sujeriram trocar o BD por MySQL, realmente fica muito mais rapido?
Sim, quando ao MySQL firará um pouco mais rápido pois o MySQL tem um tempo de resposta mais rápido do que seu “concorrente” Acess, você pode ter um pequeno ganho nesta alteração.

Tem alguma API ou Artigo para Otmização de codigo?
Para Otimização não, mas você pode mudar a interface gráfica de Swing para AWT que ficara com certeza mais rápida.

Por final, mudando sua aplicação para MySQL e sua Interface para AWT não ficará “pqp que rápido” mas em comparação com a atual ficará bem mais rápido.

Att
Leonardo Massardi

estou desenvolvendo um programa para um escritório de contabilidade e só aí percebi o quanto Swing exige da máquina :?
mudei minha aplicação para uma aplicação web e o resultado foi surpreendente (detalhe, migrei para web apenas as máquinas mais antigas e estou estudando migrar todas as estações).
Gostaria de ter feito tudo em Swing como aplicação Desktop mais o cliente está acostumado a suas aplicações em Clipper e C++ e para entrar num acordo foi difícil.

só corrigindo o amigo massardi, não é o AWT que é mais rápido, alias, o AWT é mais lento que o Swing, é mais antigo. o mais rápido é o SWT, criado pela IBM, unico detalhe que vc terá que instalar cada pacote no seu SO diferente

ah, mas eu faria tudo em SWT …
voce vai ter que instalar o jre para o sistema operacional mesmo, instalar mais um arquivo .jar e algumas DLL (caso windows) nao faz diferença nenhuma… e vc ganha velocidade e um cliente satisfeito, simples.

Realmente é o swing, mas para fazer acesso ao BD é uma tristeza.

Me sujeriram colocar prevayler, mas estou pensando ainda!!

Valew pelas dicas pessoal!! :smiley: