Re: Memory usage on lage documents

2002-05-06 Thread Baptiste Casanova
Memory usage is the weakness of FOP.
But you should try to increase the memory available for your JVM, using
java -Xms100m -Xmx250m  (for example).
And if tou have big tables, you should generate page-sequence breaks.



 Hi there folks!

 I've a question regarding the memory usage of the fop formatter with large
 documents.
 I'm rendering a large list with about 450 pages and 1 table entries.

 When i look ad the memory usage of the fop formatter in my win32
 enrironment, i see
 that it consumes about 180 MBytes of memory and it needs a lot of time to
 complete its
 work!

 Is there any way to make it faster or to let it use not so much memory
 without throwing
 an out ot memory error?

 Is there any c++ formatter out there that is open source and can do the
work
 faster and
 without so much memory usage?

 Thanks a lot

 Mirko






RE: Memory usage on lage documents

2002-05-06 Thread Savino, Matt C
If you know that none of your table cells are going to wrap you could count
rows at the XSLT level and put in a new page sequence every x pages. This
defeats a lot of the elegance of FOP, but could work. My problem is I have
lots of random cell-wrapping, and I'm not about to start trying to calculate
in my XSLT when FOP will wrap a cell.

Matt Savino



 -Original Message-
 From: Mirko Sertic [mailto:[EMAIL PROTECTED]
 Sent: Monday, May 06, 2002 8:00 AM
 To: [EMAIL PROTECTED]
 Subject: AW: Memory usage on lage documents
 
 
 Hi there again!
 
 Thanks for your help.
 
 I think you are right and my extremly long page sequences are 
 the matter.
 In fact, i have only one page-sequence.
 
 The problem is, i cannot create multiple page sequences 
 because i do not
 know
 where to break my pages. Every table-row in my document is 
 unique and so i
 do
 not know where to break.
 
 I could limit the page-sequence to let me say 20 rows per 
 page, but this
 would
 destroy my cool report layout ( I know that sounds silly but you know
 customers whishes !!! )
 
 Is there any other way?
 
 Bye
 
 Mirko
 
 -Ursprungliche Nachricht-
 Von: Cyril Rognon [mailto:[EMAIL PROTECTED]
 Gesendet: Montag, 6. Mai 2002 16:49
 An: [EMAIL PROTECTED]
 Betreff: Re: Memory usage on lage documents
 
 
 Mirko,
 
 there are many post on this list that point out the 
 weaknesses of the FOP
 engine. The main enemies are  : long page sequence and 
 forward references.
 
 If you use long tables, then you most certainly have long 
 page sequences.
 If you have logical page break in your tables, please, change 
 your XSLT
 code to generate page-sequence break in your tables. The shortest page
 sequence the least memory used.
 
 As for the lot of time to complete the work, it appear that forward
 reference may be responsible for this. I hav had the same 
 proble for 400 to
 1000 pages documents that have the famous total number of 
 pages at the
 bottom of every pages. I have successfully set up an unclean 
 workaround : I
 generate my total number of pages after PDF generation is 
 complete using
 iText software. I even generate my toc at the end of the fo 
 file and then I
 move it at the top of the document and then write the number 
 of pages at
 the right place on every pages. This is pretty simple if you 
 look at iText
 sample code (itext.sourceforge.net).
 
 The last thing : C++ or C or ASM formatter won't help much 
 because it is
 the global design that makes FOP slow and memory consumer. 
 The redesign is
 on it's way. The workarounds I have mentionned are just gizmo 
 to allow one
 to wait for the next generation of FOP.
 
 Hope that helps,
 
 Cyril
 
 
 At 16:29 06/05/2002 +0200, you wrote:
 Hi there folks!
 
 I've a question regarding the memory usage of the fop 
 formatter with large
 documents.
 I'm rendering a large list with about 450 pages and 1 
 table entries.
 
 When i look ad the memory usage of the fop formatter in my win32
 enrironment, i see
 that it consumes about 180 MBytes of memory and it needs a 
 lot of time to
 complete its
 work!
 
 Is there any way to make it faster or to let it use not so 
 much memory
 without throwing
 an out ot memory error?
 
 Is there any c++ formatter out there that is open source and 
 can do the
 work
 faster and
 without so much memory usage?
 
 Thanks a lot
 
 Mirko