While waiting for an answer that would, once again, help me out of the mud,
I went through some archives. I found this mail by Lloyd. What do you mean
by: "I modified my XSLT to put each section into a different page sequence"?
I have left and right pages. Can I then tell FOP to process pages 1 through
10 a sequence, then pages 11 through 20 etc. (inbstead of creating pairs
"left1" and "right1", "left2" and "right2" etc.)? I don't have a clue how to
accomplish the thing you wrote of...

Matthias
--- Begin Message ---

I'm not sure if this will help or not, but it worked well for me.

I was trying to process a 64 MB document, and it was taking DAYS and was
eating gobs of memory.  I did some wading through the code, looking for
ways to optimize.  I found a couple of places to reduce memory, but nothing
substantial.  (I plan to run some analysis on my changes, and if they make
a difference of more than 5%, I'll submit them for inclusion in a future
release.)  However, in my wondering through the code, I realized that FOP
parses and stores everything until it runs into an 'End' Page sequence
marker.  My XML document was one BIG page sequence, so FOP was parsing the
entire thing before it would start to generate output.  As my XML consisted
of a large number of fairly independent sections, I modified my XSLT to put
each section into a different page sequence.  The result was that FOP only
parses objects to the end of the page-sequence, spits out the pages for
that sequence, and garbage collects the objects before moving on.  The only
data that is retained are link references.  These eat up a bit memory, but
nothing as bad as all of the area references needed to draw the page :>

Hope  this helps,


Lloyd

Lloyd McKenzie, P.Eng.              I/T Architect, IBM Global Services
Internet: [EMAIL PROTECTED]
PhoneMail: (780)421-5620          Internal Mail:AZ*K0R*1004 *EDM


Matt Savino <[EMAIL PROTECTED]> on 11/09/2001 08:21:53 AM

Please respond to [EMAIL PROTECTED]

To:   [EMAIL PROTECTED]
cc:
Subject:  Re: FOP memory usage


Make sure you're using -hotspot. Try setting the initial and max heap
size to 256M if you have it. Turn on verbose garbage collection to see
what's happening. Even though it says 'No garbage collection was
performed, I'm not sure that's accurate (see below). Also sometimes the
total memory used is negative. So don't assume you'll always run out of
memory. That said 15MB XML to 120MB PDF may be a littl much. The only
way to find out is to try it!

<<< my output on Weblogic with -hotspot -verbose:gc -ms256m -mx256m >>>

FopServlet says hi
[GC 14710K->12798K(261888K), 0.0258153 secs]
[GC 14840K->13743K(261888K), 0.0275211 secs]
[Full GC 15436K->13778K(261888K), 0.7851467 secs]
[GC 15825K->14079K(261888K), 0.0097378 secs]
[GC 16127K->14306K(261888K), 0.0203590 secs]
[GC 16354K->14835K(261888K), 0.0211491 secs]
[GC 16883K->14911K(261888K), 0.0125452 secs]
[GC 16959K->14949K(261888K), 0.0097037 secs]
[GC 16997K->14981K(261888K), 0.0080228 secs]
building formatting object tree
setting up fonts
[GC 17029K->15288K(261888K), 0.0154997 secs]
[GC 17336K->15777K(261888K), 0.0254016 secs]
[GC 17825K->16324K(261888K), 0.0199059 secs]
 [1[GC 18372K->16920K(261888K), 0.0248386 secs]
[GC 18968K->17332K(261888K), 0.0178556 secs]
[GC 19380K->17702K(261888K), 0.0221106 secs]
] [2][GC 19750K->18117K(261888K), 0.0219930 secs]
[GC 19021K->18525K(261888K), 0.0153204 secs]
[GC 19952K->19940K(261888K), 0.0163652 secs]
[GC 21009K->21005K(261888K), 0.0129846 secs]
[GC 22075K->22075K(261888K), 0.0132101 secs]
 [3[GC 24122K->23293K(261888K), 0.0148726 secs]
][GC 25341K->23623K(261888K), 0.0144110 secs]
 [4[GC 25671K->23925K(261888K), 0.0167574 secs]
[GC 25973K->24281K(261888K), 0.0171810 secs]
]
Parsing of document complete, stopping renderer
Initial heap size: 15357Kb
Current heap size: 24716Kb
Total memory used: 9358Kb
  Memory use is indicative; no GC was performed
  These figures should not be used comparatively
Total time used: 5117ms
Pages rendererd: 4
Avg render time: 1279ms/page






"Maring, Steve" wrote:
>
> I'm using fop-0.20.1.
>
> I started with a 650KB XML file that I transformed into a 4MB XSL:FO
file.
> Running this file through FOP to generate a PDF used about 90MB of
memory.
>
> Initial heap size: 807Kb
> Current heap size: 91637Kb
> Total memory used: 90829Kb
>   Memory use is indicative; no GC was performed
>   These figures should not be used comparatively
> Total time used: 31265ms
> Pages rendererd: 17
> Avg render time: 1839ms/page
>
> I have XML files in excess of 15MB that need to be converted to PDF.
> Assuming that a linear extrapolation is possible, it would suggest that
the
> JVM running the FOP process would need in excess of 2GB of memory for
this
> to avoid the dreaded java.lang.OutOfMemoryError.
>
> Are there any optimizations that can be done to FOP?
>
> Thanks.
> -Steve Maring
> Nielsen Media Research
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]


--- End Message ---
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to