Uploaded image for project: 'FOP'
  1. FOP
  2. FOP-1766

Hyphenation of languages with country code does unnecessary IO / innefficient caching.

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Resolution: Unresolved
    • 2.5
    • None
    • unqualified
    • None
    • Operating System: Windows Vista
      Platform: PC
    • 48684

    Description

      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?

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            lbuenger Ludger Bünger

            Dates

              Created:
              Updated:

              Slack

                Issue deployment