[ 
https://issues.apache.org/struts/browse/WW-2189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Don Brown resolved WW-2189.
---------------------------

    Resolution: Fixed
      Assignee: Don Brown

Fixed, thanks for the nice patch!

> improve freemarker first-level template caching
> -----------------------------------------------
>
>                 Key: WW-2189
>                 URL: https://issues.apache.org/struts/browse/WW-2189
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Plugin - Tags
>    Affects Versions: 2.0.10
>            Reporter: Haroon Rafique
>            Assignee: Don Brown
>            Priority: Minor
>             Fix For: 2.1.1
>
>         Attachments: ww-2189-max-strong-size-mrucache.patch
>
>
> I think the freemarker first-level caching needs to be improved. The default 
> cache used by freemarker implements a two-level Most Recently Used cache. In 
> the first level, items are strongly referenced up to the specified maximum 
> (strongly referenced items can't be dropped by the JVM, as opposed to softly 
> referenced items). When the maximum is exceeded, the least recently used item 
> is moved into the second level cache, where they are softly referenced, up to 
> another specified maximum.
> Quoting from (near the bottom):
> http://freemarker.org/docs/pgui_config_templateloading.html#pgui_config_templateloading_caching
> When you create a new Configuration object, initially it uses an 
> MruCacheStorage where maxStrongSize is 0, and maxSoftSize is 
> Integer.MAX_VALUE (that is, in practice, infinite). But using non-0 
> maxStrongSize is maybe a better strategy for high load servers, since it 
> seems that, with only softly referenced items, JVM tends to cause just higher 
> resource consumption if the resource consumption was already high, because it 
> constantly throws frequently used templates from the cache, which then have 
> to be re-loaded and and re-parsed.
> The patch (will be attached shortly) against 2.0.10 configures a non-zero 
> value for the first-level cache.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to