This tutorial explains how to profile
a Java code running with JRun 3.0.
OptimizeIt comes with a wizard that automatically performs the steps
described in this tutorial. The wizard can be accessed from the "Tools/Application
server integration" menu in OptimizeIt.
In this document, <OptItDir>
is the directory where OptimizeIt has been installed. (ex; c:\OptimizeItDemo\OptimizeIt40D)
1) Configuring JRun for OptimizeIt
-
From the Start menu, start the JRun Admin Server.
-
Start the JRun Management Console (JMC) by clicking Start in the
JRun Admin Server window.
-
In the JMC, select the server you want to use with OptimizeIt in the left
frame.
-
Click on Java Settings.
-
In the Java Settings table, click on Classpath.
-
Add the following line at the end of the Input Field:
-
Click on Update.
-
In the Java Settings table, click on LibraryPath.
-
Append in the Input Field:
-
Click on Update.
-
In the Java Settings table, click on Java Arguments.
-
If you are using JDK 1.3, insert in the Input Field:
-
If you are using JDK 1.2, insert in the Input Field:
-classic -Xrunoii -Xnoclassgc
-Djava.compiler=NONE
-
If you are using JDK 1.1.6, 1.1.7 or 1.1.8, insert in the Input Field:
-noclassgc -Djava.compiler=NONE
-
Click on Update.
2) Installing and starting the OptimizeIt servlet
OptimizeIt includes a simple servlet that allows you to start OptimizeIt
profiler in the virtual machine of JRun. Once the profiler runs in the
virtual machine of JRun, you can attach to JRun from OptimizeIt.
-
Copy the OptimizeIt Servlet class file <OptItDir>\lib\servlet\OptimizeIt.class
into the default JRun servlet directory (ex: c:\JRun\servlets).
-
Start JRun from the JMC, by selecting your server on the left frame and
then clicking on the start server button.
-
Invoke the servlet from a web browser. (ex: http://localhost/servlet/OptimizeIt).
-
In the HTML page that the servlet provides, change the port number if necessary.
-
Select the "Disable memory profiler" option if you only want to focus on
CPU usage.
-
Select "Enable OptimizeIt's audit system API" if your code enables/disables
the profiler by using OptimizeIt's audit system API
-
Press the "Start OptimizeIt Audit System" button to start the profiler.
Once this operation is done, you should see a message in your web browser
indicating that OptimizeIt's audit system is running.
3) Attaching from OptimizeIt
Now that JRun is running with OptimizeIt profiler, you can start OptimizeIt
and attach to the virtual machine.
-
Start OptimizeIt from the Start menu.
-
Close the Edit Settings panel by pressing the OK button.
-
From the Program menu, select Attach.
-
Change the port number and the hostname if necessary.
-
Press the Attach button.
Note: OptimizeIt does not have a "detach" function. If you press the stop
button in OptimizeIt, the servlet engine exits and automatically restarts.
After doing this, you need to invoke the OptimizeIt servlet to restart
the profiler.
4) Filtering resources used by JRun
OptimizeIt provides filters for filtering resources used by JRun. In order
to use filters, you must create an OptimizeIt setting for the profiling
session, turn on the JRun filter, and then attach by using the Attach
now button or pressing the play button.
-
Start OptimizeIt's audit system by using OptimizeIt's
servlet.
-
Start OptimizeIt from the Start menu.
-
Close the settings editor by pressing OK.
-
From the File menu, select New
-
In the Edit Settings panel select Remote
Application in the Program type part.
-
Change the hostname or the port number if necessary.
-
Switch to the Filters section by clicking the
Filters
tab.
-
In the table, find the line with the name Allaire
JRun.
-
If you want to ignore CPU or time consumed by
JRun, check the Ignore CPU usage column on that line.
-
If you want to ignore object allocations performed
by JRun, check the Ignore Memory usage column on that line.
-
Press the Attach now button.
Note: OptimizeIt settings can be saved for subsequent usage. This is done
by using the save menu.
4) Starting OptimizeIt profiler from your Java code
While the OptimizeIt servlet is convenient to start profiling quickly,
you may want to automatically start OptimizeIt profiler with one of your
servlet. That way, you don't have to invoke the OptimizeIt servlet to start
the audit system before testing your servlets.
Starting OptimizeIt profiler can be easily done by using OptimizeIt's
API. OptimizeIt's API is documented in OptimizeIt user manual, chapter
9. The following code demonstrates how to start the profiler from your
servlet:
import intuitive.audit.Audit;
...
static boolean isProfilerStarted = false;
if(!isProfilerStarted) {
/* Start OptimizeIt's profiler */
Audit.start(1470, Audit.PROFILERS_ALWAYS_ENABLED);
isProfilerStarted = true;
}
...
Note: you will need to add <OptItDir>\lib\optit.jar
to your CLASSPATH to compile this code
Once OptimizeIt's profiler is running, you can start OptimizeIt and
attach to JRun.
Copyright (c) 1997, 1998, 1999, 2000, 2001 Intuitive
Systems Inc. All rights reserved. Specifications subject to change without
notice.
OptimizeIt is a trademark of Intuitive Systems, Inc.
Java and all Java-based trademarks and logos are trademarks
or registered trademarks of Sun Microsystems, Inc. All other brand names
and products are trademarks or registered trademarks of their respective
holders.