Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"Method-Level Phase Behavior in Java Workloads"
|
|
|
|
Method-Level Phase Behavior in Java Workloads
Ballroom A-B Wednesday, 16:00, 30 minutes 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Andy Georges, Ghent University Dries Buytaert, Ghent University Lieven Eeckhout, Ghent University Koen De Bosschere, Ghent University
Java workloads are becoming more and more prominent on various
computing devices. Understanding the behavior of a Java workload
which includes the interaction between the application and the
virtual machine, is thus of primary importance during performance
analysis and optimization. Moreover, as contemporary software
projects are increasing in complexity, automatic performance
analysis techniques are indispensable. This paper proposes an
off-line method-level phase analysis approach for Java workloads
that consists of three steps. In the first step, the execution
time is computed for each method invocation. Using an off-line
tool, we subsequently analyze the dynamic call graph (that is
annotated with the method invocations' execution times) to
identify method-level phases. Finally, we measure performance
characteristics for each of the selected phases. This is done
using hardware performance monitors. As such, our approach allows
for linking microprocessor-level information at the individual
methods in the Java application's source code. This is extremely
interesting information during performance analysis and
optimization as programmers can use this information to optimize
their code. We evaluate our approach in the Jikes RVM on an
IA-32 platform using the SPECjvm98 and SPECjbb2000 benchmarks. This
is done according to a number of important criteria: the overhead
during profiling, the variability within and between the phases
and its applicability in Java workload characterization (measuring
performance characteristics of the various VM components) and
application bottleneck identification.
|