ACM Home Page
Please provide us with feedback. Feedback
How java programs interact with virtual machines at the microarchitectural level
Full text PdfPdf (349 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications table of contents
Anaheim, California, USA
SESSION: Java performance table of contents
Pages: 169 - 186  
Year of Publication: 2003
ISBN:1-58113-712-5
Also published in ...
Authors
Lieven Eeckhout  Ghent University, Gent, Belgium
Andy Georges  Ghent University, Gent, Belgium
Koen De Bosschere  Ghent University, Gent, Belgium
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 89,   Citation Count: 20
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/949305.949321
What is a DOI?

ABSTRACT

Java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running Java workloads, is thus extremely important during the design of a system that will run such workloads. In other words, understanding the interaction between the Java application, its input and the virtual machine it runs on, is key to a succesful design. The goal of this paper is to study this complex interaction at the microarchitectural level, e.g., by analyzing the branch behavior, the cache behavior, etc. This is done by measuring a large number of performance characteristics using performance counters on an AMD K7 Duron microprocessor. These performance characteristics are measured for seven virtual machine configurations, and a collection of Java benchmarks with corresponding inputs coming from the SPECjvm98 benchmark suite, the SPECjbb2000 benchmark suite, the Java Grande Forum benchmark suite and an open-source raytracer, called Raja with 19 scene descriptions. This large amount of data is further analyzed using statistical data analysis techniques, namely principal components analysis and cluster analysis. These techniques provide useful insights in an understandable way.From our experiments, we conclude that (i) the behavior observed at the microarchitectural level is primarily determined by the virtual machine for small input sets, e.g., the SPECjvm98 s1 input set; (ii) the behavior can be quite different for various input sets, e.g., short-running versus long-running benchmarks; (iii) for long-running benchmarks with few hot spots, the behavior can be primarily determined by the Java program and not the virtual machine, i.e., all the virtual machines optimize the hot spots to similarly behaving native code; (iv) in general, the behavior of a Java application running on one virtual machine can be significantly different from running on another virtual machine. These conclusions warn researchers working on Java workloads to be careful when using a limited number of Java benchmarks or virtual machines since this might lead to biased conclusions.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Advanced Micro Devices, Inc. AMD Athlon Processor x86 Code Optimization Guide, February 2002. http://www.amd.com
 
2
3
 
4
 
5
 
6
BEASystems, Inc. BEA Weblogic JRockit -- The Server JVM: Increasing Server-side Performance and Manageability, August 2002. http://www.bea.com/products/weblogic/jrockit
7
 
8
K.R. Bowers and D. Kaeli. Characterizing the SPECjvm98 ben hmarks on the Java Virtual Machine. Te hnical Report ECE-CEG-98-026, Northeastern University, Department of Electrical and Computer Engineering, September 1998.
 
9
J.M. Bull, L.A. Smith, M.D. Westhead, D.S. Henty, and R.A.Davey.A benchmark suite for high performance Java. Concurrency,Practice and Experience, 12(6):375--388, May 2000.
 
10
K. Chow, A. Wright, and K. Lai. Characterization of Java workloads by principal components analysis and indirect branches. In Proceedings of the Workshop on Workload Characterization (WWC-1998), held in conjunction with he 31st Annual ACM/IEEE International Symposium on Microarchitecture (MICRO-31), pages 11--19, November 1998.
11
 
12
K. Diefendorff. K7 challenges Intel. Microprocessor Report, 12(14), October 1998.
 
13
 
14
L. Eeckhout, H. Vandierendonck, and K.De Bosschere. Quantifying the impact of input data sets on program behavior and its applications. Journal of Instruction-Level Parallelism, 5:1--33, February 2003. http://www.jilp.org/vol5
 
15
 
16
 
17
18
19
 
20
R. Radhakrishnan, N. Vijaykrishnan, L.K. John, and A. Sivasubramaniam. Architectural issues in java runtime systems. In Proceedings of the Sixth International Symposium on High Performance Computer Archicecture (HPCA-6),pages 387--398, January 2000.
 
21
22
23
 
24
StatSoft, Inc. STATISTICA for Windows. Computer program manual. 1999. http://www.statsoft.com 1999.
 
25
 
26
Sun Microsystems, Inc. The Java HotSpot Virtual Machine, v1.4.1, September 2002.

CITED BY  20

Collaborative Colleagues:
Lieven Eeckhout: colleagues
Andy Georges: colleagues
Koen De Bosschere: colleagues