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 Lloyd McKenzie/CanWest/IBM <lm...@ca.ibm.com> on 2001/11/04 04:21:38 UTC

What is the purpose of layout.Area.addLineagePair?

Hi everyone,

I'm going through FOP doing some playing around to see if I can reduce the
memory use/improve performance of FOP.  (I've got a document that takes
about 20 days to translate, and I'd like to speed it up a bit :>).

As part of the process, I've been looking at some of the elements that are
eating up large chunks of memory.  One of the candidates is the
"returnedBy" hashtable in layout.Area.  The only place this hashtable is
referenced is in the "addLineagePair(fObj fo, int position)" method.  This
method puts data into the hashtable.  However nothing else accesses the
hashtable.  I.e. We're putting stuff in, but never extracting it or looking
at it.

Was this added with a specific intended future use?  If so, what?  Is it
lying around as debris from a past requirement?  Does anyone remember?  If
I get back no responses, I'll toast it in my proposed
'performance-enhancement' changes.


Thanks for your help,


Lloyd

Lloyd McKenzie, P.Eng.              I/T Architect, IBM Global Services
Internet: LMCKENZI@CA.IBM.COM
PhoneMail: (780)421-5620          Internal Mail:AZ*K0R*1004 *EDM


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org


Re: What is the purpose of layout.Area.addLineagePair?

Posted by Arved Sandstrom <Ar...@chebucto.ns.ca>.
At 08:21 PM 11/3/01 -0700, Lloyd McKenzie wrote:
>I'm going through FOP doing some playing around to see if I can reduce the
>memory use/improve performance of FOP.  (I've got a document that takes
>about 20 days to translate, and I'd like to speed it up a bit :>).
>
>As part of the process, I've been looking at some of the elements that are
>eating up large chunks of memory.  One of the candidates is the
>"returnedBy" hashtable in layout.Area.  The only place this hashtable is
>referenced is in the "addLineagePair(fObj fo, int position)" method.  This
>method puts data into the hashtable.  However nothing else accesses the
>hashtable.  I.e. We're putting stuff in, but never extracting it or looking
>at it.
>
>Was this added with a specific intended future use?  If so, what?  Is it
>lying around as debris from a past requirement?  Does anyone remember?  If
>I get back no responses, I'll toast it in my proposed
>'performance-enhancement' changes.

Hi, Lloyd

Well, I remember putting it in. It's not what I would consider as "debris 
from a past requirement", not unless the 'generated-by' and 'returned-by' 
traits (see Section 6.1; also a mention in Section 4.1) are considered 
irrelevant.

These traits are the mechanism by which we can determine what FO(s) 
generated and returned any given area. At the time that I put in that code, 
I was thinking about keeps and markers and who knows what else, and there 
were definitely questions that I could see being asked of the area tree data 
structure that would require this information to be available.

We can debate the merits of how these traits get implemented, no question 
about it. Probably that implementation can be improved...normal areas, for 
example, which is most of them, have a 'returned-by' lineage of size 1, so 
the naive use of a generic Hashtable is contra-indicated.

I don't think there is any harm in taking it out, since it is not currently 
being used. I figure something like this will be added, though, _somewhere_, 
in future code. In any case, I think first-order performance-enhancements 
start with minimizing the _number_ of FOs and areas that are in memory, and 
efficiencies in the size of FO and area representations are second-order 
enhancements. In other words, I would not rely on areas being even as small 
as they are now...once we add all the information they are supposed to have, 
and support more functionality, they may get bigger.

Regards,
Arved Sandstrom



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org