![]() |
![]() |
![]() |
![]() |
1 Introducing OptimizeIt
1.1 What is OptimizeIt?
OptimizeItTM software is a JavaTM profiling tool which enables developers to test and improve the performance of their Java applications, applets, servlets, JavabeansTM, Enterprise JavabeansTM and Java Server PagesTM. OptimizeIt takes you behind the scenes of the Java virtual machine and reveals how a Java program uses computer resources. Using OptimizeIt allows developers to identify any Java code allocating too much memory or using the CPU in an inefficient way.
OptimizeIt is plug and play: there is no need to recompile your program with a custom compiler or to modify class files before execution. Just run your program from OptimizeIt to start testing its performance. Because no code modification is required, any Java code that your program uses is included in the profile.
OptimizeIt has two main components:
· The OptimizeIt user interface is a window that displays profiles and controls for refining the profiles and viewing source code.
· The OptimizeIt audit system is a real-time detective that reports the activity on the Java virtual machine back to the OptimizeIt user interface.
After you invoke your program from OptimizeIt, the OptimizeIt user interface connects to the audit system running in the test application's virtual machine and displays performance related information. For example, when an object is allocated by your program, the OptimizeIt window displays the allocation. You can click a button in the OptimizeIt window to display the source code responsible for allocating the object and click a button to display other information such as CPU usage.
At any time you can open the source code viewer to display and study relevant lines of code. For example, if you identify a performance bottleneck while viewing methods allocating objects, you can click a button to open the source code viewer displaying the problem code.
When you run OptimizeIt again after fixing source code, you can make sure that your new optimization is actually improving the performance of your application. OptimizeIt removes guesswork from improving Java performance.
1.2 Getting started with OptimizeIt
The basic steps to run OptimizeIt are as follows:
· Create some new settings for the application you want to test
· Launch your test program from OptimizeIt
· Analyze memory use in the test program
· Analyze CPU use in the test program
· Make changes to your source code and repeat these steps until you are satisfied with your program's performance
These basic steps are detailed in the OptimizeIt Quick Tour, also accessible from the user interface. This user manual describes a more broad selection of OptimizeIt tasks. It also includes information about OptimizeIt windows and options.
We strongly recommend that you spend 10 minutes with the OptimizeIt Quick Tour tutorial to understand OptimizeIt quickly.
1.3 Differences when profiling with Java and Java 2
Some OptimizeIt features are different when using Java (JDK 1.1) or Java 2 (JDK 1.2 or JDK 1.3). For example, OptimizeIt provides more features with Java 2. The following logos are used within the documentation when a paragraph only applies to Java or Java 2:
![]()
![]()
1.4 OptimizeIt main features
Memory Profiler
· Provides real-time display of all classes used by the test program and of the number of allocated instances
· Graphically indicates where instances are allocated
· Filters class lists so you can focus on relevant classes
· Automatically highlights lines of code that allocate object instances
· Gives you control over garbage collection
· Displays incoming and outgoing object references in real time
· Displays string representations of allocated instances
· Provides Java API calls so you can invoke the memory profiler from inside the test program
![]()
· Computes reduced reference graph for incoming references
· Displays references from reference graph roots
CPU profiler
· Allows you to start or stop profiling at any time
· Displays data for pure CPU use or for elapsed time (pure CPU and inactive phases)
· Graphically represents thread activities for the sampling period
· Displays profiling information for each thread or thread group
· Finds frequently used methods using Hot spot detectors
· Provides Java API calls so you can invoke the CPU profiler from inside the test program
![]()
· Provides both a sampler based profiler and an instrumentation based profiler
· Can provide millisecond or microsecond precision
· Displays invocation count
· Provides filter to remove fast methods
Other features
· Provides filters for both memory and CPU profiler
· Displays and exports charts showing high level VM information including heap size, heap used, number of threads, number of busy threads, number of loaded classes
· Starts any Java application, applet or servlet directly from OptimizeIt user interface
· Saves snapshots of a profiling session at any time. Snapshots can be reloaded later for analysis or comparison of profilings
· Provides an offline profiling mode to automatically save snapshots at fixed intervals
· Integrates automatically with several IDEs including VisualAge, Symantec Cafe, JBuilder, JDeveloper
· Integrates automatically with several Application Servers including JRun 2.3, WebLogic 4.5, iPlanet Web Server (NES 4.0), JServ 1.1, Java Web Server 1.13 and 2.0, ServletExec 2.2
· Provides compatibility with IBM WebSphere, Apple WebObjects and Netscape Application Server (NAS), ATG Dynamo, SilverStream, GemStone, Tomcat
· Pauses and resumes the execution of the test program
· Provides a find tool that can be used in all screens
· Highlights relevant lines of code with the source code viewer
· Includes a Java setup wizard for fast and simple configuration
· Executes your test program remotely while analyzing performance
· Exports any information in HTML or ASCII
· Provides Java API calls so you can invoke the OptimizeIt audit system from any Java code
·Supports any virtual machine that is fully JVMPI compliant. This includes any Sun virtual machine derived from JDK 1.1, 1.2, 1.3 and also IBM JDK 1.2 and 1.3
· Displays and exports chart showing garbage collector load factor.
· Starts applications directly from JAR files
Intuitive Systems http://www.optimizeit.com optimizeit@intuisys.com |
![]() |
![]() |
![]() |
![]() |