Performance com FOP

1 resposta
R

Opa!

EddiE, Thomás da Costa, Plud (coloquei o nick de vcs pois vi mensagens suas sobre o FOP) ou qualquer outra pessoa que utilize FOP:

Qual é a mágica que tem que fazer prá conseguir um desempenho decente com esse troço aí?!?!?!

Há alguns meses atrás eu vi um post em uma das mailing lists lá da apache (tô procurando o post, não coloquei nos bookmarks :oops: ) onde um loco lá dizia que gerava relatórios com o FOP e a performance era boa… não lembro ao certo os números, mas dava uma média de 15 páginas por segundo… o carinha gerava relatórios de 4 ou 5 mil páginas… prá mim o cara é um ninja!

não consigo mais que 1 (UMA) página por segundo!
temos alguns relatórios cabeludos que não estão trablhando com xslt (foram feitos todos com xsl:fo, não há xml com dados e não passam por transformação, só pela renderização) e agora tô fazendo uns testes prá colocar os relatórios trabalhar com xslt… por que tô fazendo isso? porque o ninja que eu falei ali em cima tava trabalhando desta forma… não obtive ganho de performance (pelo contrário, piorou) e acho que ele continua consumindo memória que nem um louco…

 fazendo um relatório de teste com xslt +/- assim:

5000 registros (monto um xml simples com um for);

cada registro tem 7 campos;

o resultado  60 páginas em 110 segundos (média)

o gargalo é na rederização, a xslt (com o SAX) vai tranquilo…

pergunto mais uma vez:
qual é a mágica?!?!?!
os relatórios são em pdf…

quem utiliza o FOP, o que tem a me dizer?

desde já grato
té+

1 Resposta

louds

Não sei bem como conseguir fazer o FOP ir mais rápido, mas quando eu tive que trabalhar com usei uma JVM dedicada somente a processar o XML do fop, renderizando para pdf sem nenhuma transformação. Os clientes conectavam via sockets e mandavam o xml.

Para ganhar performance voce tem que otimizar o layout, diminindo ao máximo a quantidade de diretivas de formatação e se possivel gerando poucas páginas por vez e juntando o resultado no final.

Melhor gerar 500 relatorios com 100k de xml cada que um relatorio de 50 com megas de xml. A diferença de performance é enorme.

Criado 5 de janeiro de 2005
Ultima resposta 5 de jan. de 2005
Respostas 1
Participantes 2