Percebi que cada vez que abro um relatório no Jasper, ele aumenta o consumo de memória da minha máquina, mas quando fecho esse rel o consumo não é reduzido.
Claro que o tanto que aumenta depende da quantia de páginas do relatório em questão.
Queria saber onde são armazenadas (em que tipo de objeto) os dados das páginas do meu relatório. Gostaria de acessar isso e anular seu conteúdo quando fecho o relatório.
Coloque o código que você fez para gerar o relatório.
RenataFA
Olá amigo!
Teste com seu código e verá que faz a msma coisa, vai inclusive se surpreender.
Todo mundo que perguntei por MSN sobre isso se assustou ao ver que seu sistema faz a msma coisa e ele nem sabia…
Abaixo um trechinho do meu código, simplificando pra vcs. Mas não existe problema nenhum na chamada dos relatórios, existe sim problema em quando eu fecho os relatórios. Eu não tenho nada programado quando fecho os relatórios, e deveria ter, algo deveria limpar…
JasperReport jr = (JasperReport)JRLoader.loadObject(getClass().getResource("meuRelatorio.jasper"));
JasperPrint impressao = JasperFillManager.fillReport(jr,parameters,conexao); // onde conexao é minha conexao ativa com o BD
JasperViewer jasperViewer = new JasperViewer(jasperPrint,false);
jasperViewer.setVisible(true);
Tentei usar o Virtualizer mas tb não adiantou em nada… depois que termina o rel ele continua em memória do msm jeito.
Alguma luz?
F
FelipeJP
Acabei de fazer o teste e realmente o consumo não é reduzido após fechar o relatório.
O JasperPrint é um JFrame. Pensei que fosse algo no fechamento dele. O default do JFrame é dar um Hide ao fechar, tentei trocar mas não resolveu.
Vou fazer mais alguns testes.
RenataFA
Tentamos algumas coisas aqui tb, mas nada que conseguisse fazer ele sumir da memória.