Resin includes high level profiling capability for profiling requests.
Enabling the Profiler
<web-app ...>
<servlet-mapping servlet-class="com.caucho.tools.profiler.ProfilerServlet" url-pattern="/resin-profiler">
<init>
<profiler enabled="true"/>
</init>
<load-on-startup/>
</servlet-mapping>
Profiling requests
Request profiling gives insight into the time taken for requests from client browsers.
It imposes very little overhead and is suitable for production servers.
<web-app ...>
<filter filter-name="resin-profiler"
filter-class="com.caucho.profiler.ProfilerFilter">
<init use-query="false"/>
</filter>
<filter-mapping filter-name="resin-profiler" url-pattern="*">
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
View results
Profiling Results for /webapp
Name | Average Time | Total Time | Invocation Count |
| 1.749 | 1.749 | 1 |
| | 0.000 | 0 |
Profiling sub-requests
Sub-request profiling adds profiling information for pages that are sub-requests of the top level request,
typically with <jsp:include>, <jsp:forward>, or the equivalent mechanisms for Servlets.
It imposes a bit more overhead and may be suitable for production servers.
<web-app ...>
<filter filter-name="resin-profiler"
filter-class="com.caucho.profiler.ProfilerFilter">
<init use-query="false"/>
</filter>
<filter-mapping filter-name="resin-profiler" url-pattern="*">
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
View results
Profiling Results for /webapp
Name | Average Time | Total Time | Invocation Count |
| 1.749 | 1.749 | 1 |
| 0.863 | 0.863 | 1 |
| 0.575 | 0.575 | 1 |
| 0.060 | 0.060 | 1 |
| | 0.000 | 0 |
JMX
The Profiler instantiates a JMX bean with type `Profiler'.