Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fill in content using snippet

Profiling aspects

Struts2 profiling aspects involves the following :-

  • ActionContextCleanUp
  • FreemarkerPageFilter
  • DispatcherFilter
    • creation of DefaultActionProxy
      • creation of DefaultActionInvocation
        • creation of Action
    • execution of DefaultActionProxy
      • invocation of DefaultActionInvocation
        • invocation of Interceptors
        • invocation of Action
        • invocation of PreResultListener
        • invocation of Result

Activating / Deactivating Profiling

// todo: how to turn on / off profiling feature

Write profiling code

// todo: how to write code that make uses of Struts2 profiling feature.

Profiling Log files

Wiki Markup
{snippet:id=profilingAspect|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Activating / Deactivating Profiling

Wiki Markup
{snippet:id=activationDescription|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Through System property

Wiki Markup
{snippet:id=activationThroughSystemProperty|lang=xml|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}
Wiki Markup
{snippet:id=activationThroughSystemPropertyDescription|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Through code

Wiki Markup
{snippet:id=activationThroughCode|lang=xml|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}
Wiki Markup
{snippet:id=activationThroughCodeDescription|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Filtering profile information

Wiki Markup
{snippet:id=filteringDescription|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}
Wiki Markup
{snippet:id=filtering|lang=xml|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Write profiling code

Wiki Markup
{snippet:id=methodDescription|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Using UtilTimerStack's push and pop

Wiki Markup
{snippet:id=method1|lang=xml|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Using a UtilTimerStack's ProfileBlock template

Wiki Markup
{snippet:id=method2|lang=xml|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

Profiling Log files

Wiki Markup
{snippet:id=profileLogFile|javadoc=true|url=com.opensymphony.xwork2.util.profiling.UtilTimerStack}

...