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?