Java profiling with Eclipse TPTP

What is profiling?

Profiling is the dynamic application analysis i.e. analysing the behaviour of the application during its execution.

Few of the important information that a profiler captures are:

  • Monitor memory usage and leaks in any java applications
  • Monitor method call duration
  • Display info in graphs, reports, tree views, etc

In this blog I will discuss about Eclipse TPTP which is one of the very popular toll for Java profiling. The main objective of the blog is to show how configure eclipse TPTP in your local to do profiling during your development.

It is a preventive measure and ensure better performance of your code in production or live environment.

What is Eclipse TPTP?

The Eclipse Test and Performance Tools Platform (TPTP) is an open sourec platform and helps the developers in performance measurement  of their developed code.

How to configure?

  1. Download the package from https://eclipse.org/tptp/home/downloadsThis package contains Eclipse along with its plug-ins and also the profiler. If you need only the profiler do the following.a.Unzip the package

    b.Copy the features and plugins folder into a separate folder say agentController

     

  2. Configure Agent Controller

Go to Control Panelcontrol panel

Click on System and Security

system security

Click on System

system

Click on Advanced System settingsadvanced

Click on Environment Variable

enviornment v

From System variable select “Path” and then edit

path v

Add jdk or jre bin path (example: C:\Program Files\IBM\SDP_RSA803\jdk\bin\)

Open a DOS command prompt window.

Dos1

Navigate to the Agent Controller bin directory.

For example: If you have copied the agentController folder in C drive then
cdC:\agentController\plugins\org.eclipse.tptp.platform.ac.win_ia32_4.4.302.v201102041430\agent_controller\bin

Dos1

Enter SetConfig and press the Enter key

dos3

You will get message as shown below

dos4

Enter the path that you set in environment Variable
If you added path of environment variable as C:\ProgramFiles\IBM\SDP_RSA803\jdk\bin\
Then now enter C:\Program Files\IBM\SDP_RSA803\jdk\bin\javaw.exe and press Enter

You will get message as shown

dos5

Press enter
You will get following messagedos6

Configuration complete

3. Verify configuration

Type ACServer as shown and press Enter

dos7

Go to task manager and see ACServer is running

task manager

Run profiler on Websphere

Start your server in profile mode

profile

In few seconds following window will appear

profile1

Click next and select the option you want to analyze

profile mode

Click Finish
Once server is started , switch to Profiling perspective

Aanalysis

Run your application and then go to RAD/Eclipse Profiling perspective , go to execution tab

execution tab

Drill down to see statistics of each method

Stat

Double click the method to see detail. It will show the calling method for this method and also the methods this current method calls, time taken by this method for execution, number of times the method get called

Stat1

Customize Filter:
If you are interested track only certain packages and methods do it by setting filter
Right click on server and select profile

profile1

Click Next

profile mode

Double click on Java Profiling- JRE 1.5 or newer

Filter

Create new filter by clicking Add at top section
Crate new exclusion rules in below part by clicking Add

Filter1

 

Important statistics

  • Average Base Time: This is the average time that a method took to complete. So, on average, this is how long a single invocation of that method took to finish (as noted above, this excludes the time taken by child methods called by this method or, more specifically, excluding the time of unfiltered child methods)

 

  • Base Time: This is the total amount of time that a method took to complete. This is an amalgamation of all of the time that was spent in this method (excluding calls to other unfiltered methods.)

 

  • Cumulative CPU Time: Cumulative CPU Time represents the amount of CPU time spent executing a specified method. However, the granularity of the data provided by the JVM in this regard is coarser then might be desirable. Consequently, CPU time maybe reported as zero if the time is less than a single platform-specific unit as reported by the JVM. Also, CPU time will not take into account other types of performance bottlenecks, such as those involving communication type and I/O accesstime. As a result, base time is often favored as a metric for performance bottleneck reduction.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s