You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by shutian liao <li...@gmail.com> on 2018/03/13 05:41:35 UTC
Performance issue on generating PDF file by Apache FOP
Hi all,
It takes long time to generate PDF file from xslt file to pdf. Following is
the time spent(run by junit test on mac) on generating different size, it's
almost linear growth with the label count, attach the generated pdf(100
labels) for example.
Label Count Time spent(ms) PDF pages Memory Used
100 4306 4 21MB
1000 13247 34 48MB
2000 19334 67 59MB
3000 27473 100 75MB
4000 32489 134 83MB
5000 36252 167 149MB
10000 56195 334 222MB
I've tried the following ways to improve the performance, but looks like it
doesn't work.
1) Using ByteArrayOutputStream
2) Set strict validation false
3) Cache font file
4) Simplify the xsl template table hierarchy
5) Set JVM -Xms4096m -Xmx4096m
I also tried to remove the barcode from label, it can help me save 60%
time. And if I remove the label title, it can save another 20% time. So
looks like it's related with how much content we want to print.
Is it a common problem that ApacheFOP need so long time to generate PDF? Is
there any way that can help to improve performance? Any one have experience
or suggestion on this?
RE: Performance issue on generating PDF file by Apache FOP
Posted by Simon Steiner <si...@gmail.com>.
Hi,
What about turning off accessability?
Thanks
From: shutian liao [mailto:liaoshutian@gmail.com]
Sent: 13 March 2018 05:42
To: fop-dev@xmlgraphics.apache.org
Subject: Performance issue on generating PDF file by Apache FOP
Hi all,
It takes long time to generate PDF file from xslt file to pdf. Following is the time spent(run by junit test on mac) on generating different size, it's almost linear growth with the label count, attach the generated pdf(100 labels) for example.
Label Count
Time spent(ms)
PDF pages
Memory Used
100
4306
4
21MB
1000
13247
34
48MB
2000
19334
67
59MB
3000
27473
100
75MB
4000
32489
134
83MB
5000
36252
167
149MB
10000
56195
334
222MB
I've tried the following ways to improve the performance, but looks like it doesn't work.
1) Using ByteArrayOutputStream
2) Set strict validation false
3) Cache font file
4) Simplify the xsl template table hierarchy
5) Set JVM -Xms4096m -Xmx4096m
I also tried to remove the barcode from label, it can help me save 60% time. And if I remove the label title, it can save another 20% time. So looks like it's related with how much content we want to print.
Is it a common problem that ApacheFOP need so long time to generate PDF? Is there any way that can help to improve performance? Any one have experience or suggestion on this?