ScopesHashModel calls OgnlValueStack.findValue too many times during rendering 
freemarker templates
---------------------------------------------------------------------------------------------------

                 Key: WW-3750
                 URL: https://issues.apache.org/jira/browse/WW-3750
             Project: Struts 2
          Issue Type: Improvement
          Components: Value Stack
    Affects Versions: 2.3.1.1
            Reporter: Pelladi Gabor
            Priority: Minor


I saw using a profiler, that OgnlValueStack.findValue(String) gets called about 
a thousand times during rendering a page. Most of the calls are coming from 
ScopesHashModel.
All freemarker templates contain a lot of references to e.g. "parameters". This 
variable is evaluated in ScopesHashModel over and over again, which takes about 
10% time of total page load.
I think we can assume, that the top-level objects on the value stack will not 
change during rendering a single struts2 tag. So with a little caching, we can 
eliminate most of the findValue method calls.

In my application I tested this modification and didn't notice any side effects 
or bugs. The OgnlValueStack.findValue(String) calls on a test page went down 
from a thousand to a hundred. This improved overall page rendering time from 
about 400ms to 360ms.

Patch is attached.
Please review it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to