Specifying profiling criteria
Profiling an application requires the selection of one or more analysis type under
the Java Profiling data collector. Data collectors specify how data
should get collected and analysis types indicate what type of data is to
be collected. Filters ensure that only relevant details are channeled
out to the views. Using filters is especially useful when speed and
efficiency is critical: the less data there is, the less impact it has
on the system, and the faster it can be collected.
Prerequisites:
Configuring the profiling criteria for an application is broken
down into the following sections:
- In your profiling configuration, select the Monitor
tab.
- The tree pane displays data collectors at root level and
analysis types as the children of the data collector. Expand the 'Java
Profiling' data collector and notice the analysis types that fall under
it (for example: 'Basic Memory Analysis', 'Execution Time Analysis',
and so on...).
Select the analysis types that you are interested in under the 'Java
Profiling' data collector. Be cautious with the number of analysis
types selected. Selecting too many unnecessary analysis types will
greatly impede the performance of the application. Refer to the table
below to see which profiling types should be enabled to generate the
different views, and possible applications of each profiling type.
Setting options will be described in the next section.
| Analysis type |
Options selected |
Views available |
Application |
| Memory Analysis |
N/A |
Memory
Statistics view (Package, Class, Method), Object References view* |
Memory
leak analysis, Identifying
memory-intensive classes |
| Memory Analysis |
Advanced >> Instance Level
information check box selected |
Memory
Statistics view (Package, Class, Method, Instance) Object References view* |
Memory
leak analysis, Studying Garbage
Collection |
| Time Analysis |
Show execution Statistics (compressed
data) |
Execution
Statistics (Package, Class, Method) Coverage Statistics |
Viewing
invocations of a method |
| Time Analysis |
Show execution Statistics (compressed
data), Advanced >> Collect instance level information |
Execution
Statistics (Package, Class, Method, Instance) Coverage Statistics |
Viewing package, class and method
statistics for each instance, Viewing
invocations of a method |
| Time Analysis |
Show execution graphical details |
Execution
Statistics (Package, Class, Method), Coverage Statistics, Execution Flow view, UML2 Sequence diagrams views
(object,class, thread) |
Identifying
active threads, Identifying
phases of program execution |
| Time Analysis |
Show execution graphical details,
Advanced >> Collect instance level information |
Execution
Statistics (Package, Class, Method, Instance), Coverage Statistics, Object References view*, Execution Flow view, UML2 Sequence diagrams views
(object,class, thread) |
Identifying
active threads, Identifying
phases of program execution |
| Code Coverage |
N/A |
Coverage
Statistics (Package, Class, Method) |
Viewing
code coverage |
* Note: For the Object References view, you will need to collect
object references by invoking the action Collect Object
References to view the profiling data using the Object References view.
You can invoke Collect Object References from the toolbar of the
Profiling Monitor view or by right clicking on the agent in the
Profiling Monitor view.
You can set profiling options for the Java Profiling data
collector or the selected analysis types, by highlighting the entity and
clicking Edit Option.
Follow the steps below to set profiling options on the Java Profiling data collector:
- Highlight Java Profiling and click on Edit Option
- On the Filter Set page, specify the filter set that you want
applied by selecting from the Select a filter set list. You can
use the Default set.
- Under Contents of selected filter set, click Add
to add packages that you want to collect data for. The Add Filter
dialog opens. An asterisk * can be used as a wildcard in a pattern when
specifying package or method names.
Note 1. When entering a pattern for the package or method name,
the pattern must be specified in one of three ways:
- A pattern with no wildcards, e.g. org.eclipse.tptp.
- A pattern with a wildcard at the beginning, e.g. *.sample.myapplication.
- A pattern with a wildcard at the end, e.g. org.eclipse.*.
Note 2. Certain classes will always be visible in the profiling
views regardless of the filter settings. The profiling agent will
always collect data for objects or classes that are associated with the
task being examined while collecting data specific to the task. For
example, you specify a filter to collect data for a single class MyUserClass,
and specify another filter to exclude the java.lang.* classes.
When an instance of MyUserClass is loaded though, it has an associated
class definition that gets loaded. This class definition has an
associated class object, which is in turn of type java.lang.Class.
This results in data collection for the java.lang.Class in
addition to the MyUserClass class.
This behavior applies to threads as well. The java.lang.Thread
class will always show up in the Profiling views because the profiling
agent tracks all running threads, and therefore, collects data for
objects or classes associated with those threads.
This behavior applies to threads as well. The java.lang.Thread
class will always show up in the Profiling views because the profiling
agent tracks all running threads, and therefore, collects data for
objects or classes associated with those threads.
- Specify the Package or Class, Method Name and
select Include from the Rule drop-down list.
- Click OK. The filter criterion is added to the contents
list.
- To exclude other existing packages from the filter contents
list, click on Include under the Rule column for the package,
and change it to Exclude.
- Click Next
- To limit the data collected by method invocations select the Stop
profiling after specified number of method invocations check box.
Specify the number of method invocations in the input box provided.
- To limit the data collected by time, select the Stop
profiling after specified amount of time check box. Specify the amount
of time in seconds in the input box provided.
- To start the profiling agent in pause mode so that data is not collected
during the initialization stage of the application, clear the Automatically
start monitoring when application is launched check box. This option is strongly
recommended for large applications that are not required to be monitored during the
initialization phase (for example launching an instance of the workbench).
- Click Finish
- Click Apply to save the changes.
Similarly, you can set the options of an analysis type by highlighting it and
selecting Edit Option.
You can specify the project, and the monitor to use for your
profiling session. You can also write the profiling data to a file.
- In your profiling configuration, select the Destination tab.
- Specify the Profiling Project that you want to use for
your profiling session.
- Specify the Monitor that you want to use.
- If you want to save the profiling data to a file, select the Send
profiling data to a file and specify the file name in the Profiling
file input box.
- Click Apply to save the changes.
- Click Profile to start profiling your application.
Hint:
When filtering, only the first applicable filter is applied. When you
are specifying filters, ensure that you declare the most specific filter
criteria first.
Related concepts
Overview of the Profiling Tool
Related tasks
Profiling an application
Setting profiling preferences
(C) Copyright IBM Corporation 2000, 2006. All
Rights Reserved.