Method-level phase behavior in java workloads
- 1 October 2004
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 39 (10) , 270-287
- https://doi.org/10.1145/1028976.1028999
Abstract
Java workloads are becoming more and more prominent on various computing devices. Understanding the behaviour of a Java workload which includes the interaction between the application and the virtual machine (VM), 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, its applicability in Java workload characterization (measuring performance characteristics of the various VM components) and application bottleneck identificationKeywords
This publication has 16 references indexed in Scilit:
- Dynamic metrics for javaPublished by Association for Computing Machinery (ACM) ,2003
- Benchmarking internet servers on superscalar machinesComputer, 2003
- Automatically characterizing large scale program behaviorPublished by Association for Computing Machinery (ACM) ,2002
- Online feedback-directed optimization of JavaPublished by Association for Computing Machinery (ACM) ,2002
- Characterizing the memory behavior of Java workloadsPublished by Association for Computing Machinery (ACM) ,2001
- An architectural framework for runtime optimizationIEEE Transactions on Computers, 2001
- Java runtime systems: characterization and architectural implicationsIEEE Transactions on Computers, 2001
- Memory hierarchy reconfiguration for energy and performance in general-purpose processor architecturesPublished by Association for Computing Machinery (ACM) ,2000
- Adaptive optimization in the Jalapeño JVMPublished by Association for Computing Machinery (ACM) ,2000
- A Portable Programming Interface for Performance Evaluation on Modern ProcessorsThe International Journal of High Performance Computing Applications, 2000