If you're generating the FO with XSLT, you could try starting a new page sequence every x nodes (rows).
"Maring, Steve" wrote: > > OK. I tried the page-sequence thing at the only possible break points in my > data, and went from a 90MB memory footprint down to 28MB. But I also went > from a 17 page PDF to a 105 page PDF. > > STUPID QUESTION: Is there a way to have a page-sequence not automate a page > break? > > Thanks. > -Steve > > -----Original Message----- > From: David Neumann [mailto:[EMAIL PROTECTED]] > Sent: Friday, November 09, 2001 1:57 PM > To: [EMAIL PROTECTED] > Subject: Re: FOP memory usage > > Indeed, thanks to a recommendation from Mr. Lillywhite to use a > sequence for each of my pages instead of one sequence for all, my > memory footprint for a 500 page report went from 270+ MB to 1.4 > MB. This was using 0.20.2 > > dave > > On Friday, November 9, 2001, at 12:31 PM, Lloyd > McKenzie/CanWest/IBM wrote: > > > > > 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] > > > > --------------------------------------------------------------------- > 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]