Profiler

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
 
m
Line 80: Line 80:
 
= JMX =
 
= JMX =
  
The Profiler instantiates a [JMX] bean with type `Profiler'.
+
The Profiler instantiates a [[JMX]] bean with type `Profiler'.

Revision as of 12:28, 28 November 2005

Resin includes high level profiling capability for profiling requests and database conenctions.

Contents

Enabling the Profiler

 <web-app ...>
 
   <servlet-mapping servlet-class="com.caucho.profiler.ProfilerServlet" url-pattern="/resin-profiler">
     <init>
       <profiler enabled="true" use-query="false"/>
     </init>
     <load-on-startup/>
   </servlet-mapping>

View Results

http://localhost:8080/webapp/resin-profiler

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>


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>

Profiling databases

The profiler-point directive is used in the database driver to configure profiling of database usage. Results are given for each unique sql statement or prepared statement.

Database profiling imposes more overhead than request profiling and should be used on production servers with care.

<database jndi-name="jdbc/caucho/crm">
   <driver>
     <type>org.postgresql.Driver</type>
     <url>jdbc:postgresql://127.0.0.1:5432/...</url>
     <user>...</user>
     <password>...</password>
 
     <profiler-point/>
   </driver>
 
   <spy/>
 </database>


JMX

The Profiler instantiates a JMX bean with type `Profiler'.

Personal tools