On Jul 11, 2007, at 20:12, [EMAIL PROTECTED] wrote:
Hi Lou
We also have a memory issue due to very large page sequences. One
thing we do is offer the customer two report outputs: PDF and
something called PDF Simple. PDF is the regular report that has a
single page sequence and can consume a lot of memory. The simple
output is the same report, but we break the page sequences every n
number if lines. It does result in some "half populated" pages,
but the memory and speed improvement make it worth it to our
customers.
Just curious: how exactly do you break the page-sequences? I've seen
it done in some Bugzilla, IIC, but I cannot remember the details. All
I remember is that it was a very dirty hack...
In the end, that page-sequence boundary is currently not a major
issue if you take into account:
a) what you get in return (absolutely gratis)
b) how easy it is sometimes to sell the dirty solution as a necessary
evil (especially when it means it will cost the customer less)
c) that no one ever really sees much more of these 1000-paged reports
than the first 20 pages anyway :)
FYI:
Note that a similar limit also applies to blocks, although people
tend to run into this far less often. In case of very large page-
sequences, those generally never make it to the layout stage. The
heap will be filled with the page-sequence and all its descendants.
A huge block of text OTOH still occupies relatively little space in
terms of memory, but it's only when layout begins that the memory
usage increases drastically and FOP finally dies because of the
ridiculous amount of break-possibilities the layout algorithm is
forced to consider. Give it a few forced breaks and everything runs
smoothly.
That said, we'd definitely appreciate any suggestions in terms of
architectural changes to shift this logic of forcing breaks into
FOP's black box. Something like an internal threshold, in terms of
memory consumption, number of Java object instances or the amount of
break-possibilities?
Cheers
Andreas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]