Profiling software looks for bottlenecks in program execution. In addition to the profiling services provided by IDEs and standalone profilers, the framework provides its own internal support for profiling.
To enable profiling, first make sure that the
profiling interceptor is applied to your action, like:
Then enable profiling using one of the following methods:
Activate Through System property
Activate Through code
Activate Through parameter
Changing the activation parameter name
profilingKey attribute of the
profiling interceptor to the desired name:
Profiling activation through a parameter requires
struts.devMode to be
Filtering profile information
One could filter out the profile logging by having a System property as follows:
xwork.profile.mintime property, one could only log profile information when its execution time exceed those specified in
xwork.profile.mintime system property. If no such property is specified, it will be assumed to be 0, hence all profile information will be logged.
Write profiling code
One could extend the profiling feature provided by Struts2 in their web application as well.
Using UtilTimerStack's push and pop
Using a UtilTimerStack's ProfileBlock template
Profiling Log files
Profiled result is logged using commons-logging under the logger named
com.opensymphony.xwork2.util.profiling.UtilTimerStack. Depending on the underlying logging implementation, say if it is Log4j, one could direct the log to appear in a different file, being emailed to someone or have it stored in the db.