|
Go back to
Demonstrations Home |
Aspect-Oriented
Profiler |
Dates:
-
Wed March 19, 11:00 -
12:30
- Fri March 21, 11:00 - 12:00
Presenters: -
Matthew Webster (IBM UK)
- Robert Berry (IBM)
Performance measurement, analysis and improvement are central
activities in the software development lifecycle. Ideally,
performance considerations play an early role, e.g., at design
time, as recommended in performance-oriented design
methodologies. But most often, they factor into the later stages
of the development process, and require the involvement of
performance analysts wielding specialised profiling technology.
Further, most existing profilers focus on CPU time and program
flow. Instead, we sought a solution to allow applications to be
profiled on the
basis of data flow a key requirement for a common, but not
well addressed problem of caching opportunity detection. We
required a technique and environment to selectively gather
information on certain methods, argument values, return values,
to conduct correlation analysis between these, and to couple
that information with timing information. While some of this
information could certainly be gathered manually, e.g., Java
debuggers based on JVMDI are able to track arguments and return
values this is typically a single-step debugging operation.
Manually inserted
instrumentation (e.g., using System.out.println statements, or
through the use of a logging or other API) is also possible.
Alternately, specialized
instrumentation can be developed based on byte-code modification
techniques interestingly this is where we began but the
flexibility of AOSD
techniques quickly suggested a different approach.
One of the key benefits of AOSD and AspectJ in particular is the
ability to identify specific methods within a Java program and
add new logic in a
non-invasive manner. Reflective mechanisms also allow the
extraction of argument and return values at runtime. AspectJ is
further exploited when
prototyping caching opportunities. Any method identified as
performing below its expected level of performance can be
intercepted through the use
of around advice. A simple caching scheme can then be deployed
such as checking to see if the method's argument values have
been used before and, if so, returning the same return value;
if not, calling proceed and storing the obtained return value in
the cache.
The profiler is an Eclipse-based plugin developed as part of an
Extreme Blue project. The AspectJ plugin is used to build an
aspect into the
program being profiled. The Aspect is generated by the Profiler
so a deep understanding of AOSD is not required by the user. The
demonstration will show the identification, analysis and
solution to a performance problem in a Java program. At each
stage the exploitation of AOSD techniques will be highlighted.
|
Contact |
For additional information, clarifications, questions, or special requirements,
please contact the AOSD 2003 Demonstrations Chair: Mik Kersten (demos@aosd.net). |
| |
|