Bug 48684

Summary: Hyphenation of languages with country code does unnecessary IO / innefficient caching.
Product: Fop - Now in Jira Reporter: ludger.buenger <ludger.buenger>
Component: generalAssignee: fop-dev
Status: NEW ---    
Severity: normal    
Priority: P3    
Version: all   
Target Milestone: ---   
Hardware: PC   
OS: Windows Vista   
Attachments: hyphenation tree cache patch

Description ludger.buenger 2010-02-05 01:31:21 UTC
Created attachment 24929 [details]
hyphenation tree cache patch

Hi everyone.

When profiling the startup time of our application, I discovered that FOP's hyphenation loads and stores identical instances of an hyphenation tree multiple times.

This occurs once for each country code given if no specific dictionary for the given country is available.

Imagine an application hyphenating text from the following languages:

de, de-DE, de-AT, de-CH and de-LU.

Then the current hyphenation code would load five instances of the same german hyphenation tree from disk/network into memory.

Now I am not sure what the best solution is.
If the hyphenation trees need to be modified one might keep five instances in memory per language code but should do a clone from a only once loaded reference hyphenation tree.

However if the hyphenation tree are supposed to remain static it should suffice to load them only once and store the same instance multiple times in the hyphenation cache.

Since FOP already uses a static hyphenation tree cache I think the second option is ok and therefore created a patch implementing this.

See attachment.

Any comments, suggestions, things I got wrong?
Comment 1 Glenn Adams 2012-04-07 01:43:10 UTC
resetting P2 open bugs to P3 pending further review