Ireport lento na primeira execução

5 respostas
J

Estou com um problema para gerar qualquer relatorio em minha aplicação,
Quando gero pelo ireport ele gera rapidamente ou seja menos de 1s
Quando gero pelo IDE ele demora em torno de 20 segundos a primeira vez e depois fica normal ou seja 1s

O codigo para chamar o relatorio é esse:

JasperPrint print = JasperFillManager.fillReport(fileName, parametros, conexaoBanco);

JDialog viewer = new JDialog(new javax.swing.JFrame(), Visualização do Relatório, true);

Toolkit toolkit = Toolkit.getDefaultToolkit();

Dimension screenSize = toolkit.getScreenSize();

viewer.setBounds(0, 0, screenSize.width, screenSize.height);

viewer.setLocationRelativeTo(null);

JasperViewer jrViewer = new JasperViewer(print, true);

viewer.getContentPane().add(jrViewer.getContentPane());

viewer.setVisible(true);

return true;

Desde ja Agradeço a atenção

5 Respostas

drsmachado

E você nem debugou para ver onde ele “enrola”?

J

ele enrosca nessa linha
JasperPrint print = JasperFillManager.fillReport(fileName, null, conexaoBanco);

o engraçado é que se gerei qualquer relatorio da minha aplicação quando gero o segundo e os demais é instantaneo so o primeiro que demora

Gerva

Esse link pode te ajudar bastante

J

Estou gerando em uma maquina com 8gb de ram core i7 creio que não seja esse o problema

Gerva

Eu sei amigo, mas isso é um comportamento normal dos computadores, independente da quantidade de memória e processamento, por isso tinha falado pra você ler, mas te dou um resumo

Na primeira execução de um programa, os pacotes que ele usa são todos carregados do HD (memória com bastante espaço porém lenta) para a RAM (memória não tão grande mas bem rápida), nas próximas execuções, esses pacotes estarão todos já nessa memória rápida, assim vai processar mais rápido :slight_smile:

A única coisa que pode te ajudar, é dar uma olhada nos pacotes, talvez tenha alguns que estão sendo carregados sem necessidade…
Se for mesmo crucial, você pode colocar no iniciar do SO uma aplicação que lê esses pacotes (pode fazer só isso mesmo), assim na primeira execução da sua aplicação eles estarão todos carregados :slight_smile:

Provável que uma dessas vai resolver o teu problema

Criado 12 de novembro de 2012
Ultima resposta 13 de nov. de 2012
Respostas 5
Participantes 3