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

Paul Benedict updated STR-3056:
-------------------------------

    Attachment: PropertyMessageResources.java

Please try this. I've taken a slightly different approach and provide an option 
to cache keys go unresolved. Tell me if this works.

> PropertyMessageResources.getMessage() does not cache failed lookups
> -------------------------------------------------------------------
>
>                 Key: STR-3056
>                 URL: https://issues.apache.org/struts/browse/STR-3056
>             Project: Struts 1
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.1.0, 1.3.8
>         Environment: Applies to all environments
>            Reporter: Patrick HIggins
>             Fix For: 1.4.0
>
>         Attachments: cache_null.patch, message_resources.patch, 
> message_resources_cache_null.patch, prof.tar.gz, PropertyMessageResources.java
>
>
> We have an application that allocates lots of garbage (sometimes over 100MB) 
> when rendering a single page. After using Netbeans profiler with it, I've 
> found that a lot of that garbage is created by MessageResources.messageKey().
> It appears that we are calling bean:write (WriteTag) thousands of times, and 
> it looks up the message for "org.apache.struts.taglib.bean.format.int" to try 
> to find a default format for integers. We have not defined this property in 
> our ApplicationResources, so it ends up returning the value 
> "???en_US.org.apache.struts.taglib.bean.format.int???" after searching 
> exhaustively for it. It does not cache this value. Then, when we call it the 
> next 8,000 times, it performs the same exhaustive search over and over 
> because it's not caching the negative response.
> I propose that negative responses get cached, too. That would save a lot of 
> time and memory so that WriteTag can just go ahead and call toString() on the 
> instance of java.lang.Integer.

-- 
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