ACM Home Page
Please provide us with feedback. Feedback
Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations
Full text PdfPdf (1.55 MB)
Source Joint International Conference on Measurement and Modeling of Computer Systems archive
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems table of contents
Cambridge, Massachusetts, United States
Pages: 194 - 205  
Year of Publication: 2001
ISBN:1-58113-334-0
Also published in ...
Authors
Yefim Shuf  Computer Science Department, Princeton University Princeton, NJ and IBM T. J. Watson Research Center, P. O. Box 218 Yorktown Heights, NY
Mauricio J. Serrano  Intel Microprocessor Research Labs, 2200 Mission College Blvd., Santa Clara, CA and IBM T.J. Watson Research Center
Manish Gupta  IBM T. J. Watson Research Center, P. O. Box 218 Yorktown Heights, NY
Jaswinder Pal Singh  Computer Science Department, Princeton University Princeton, NJ
Sponsors
SIGMETRICS: ACM Special Interest Group on Measurement and Evaluation
IFIP WG 7.3 : IFIP WG 7.3
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 46,   Citation Count: 26
Additional Information:

abstract   references   cited by   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/378420.378783
What is a DOI?

ABSTRACT

This paper studies the memory behavior of important Java workloads used in benchmarking Java Virtual Machines (JVMs), based on instrumentation of both application and library code in a state-of-the-art JVM, and provides structured information about these workloads to help guide systems' design. We begin by characterizing the inherent memory behavior of the benchmarks, such as information on the breakup of heap accesses among different categories and on the hotness of references to fields and methods. We then provide detailed information about misses in the data TLB and caches, including the distribution of misses over different kinds of accesses and over different methods. In the process, we make interesting discoveries about TLB behavior and limitations of data prefetching schemes discussed in the literature in dealing with pointer-intensive Java codes. Throughout this paper, we develop a set of recommendations to computer architects and compiler writers on how to optimize computer systems and system software to run Java programs more efficiently. This paper also makes the first attempt to compare the characteristics of SPECjvm98 to those of a server-oriented benchmark, pBOB, and explain why the current set of SPECjvm98 benchmarks may not be adequate for a comprehensive and objective evaluation of JVMs and just-in-time (JIT) compilers.We discover that the fraction of accesses to array elements is quite significant, demonstrate that the number of "hot spots" in the benchmarks is small, and show that field reordering cannot yield significant performance gains. We also show that even a fairly large L2 data cache is not effective for many Java benchmarks. We observe that instructions used to prefetch data into the L2 data cache are often squashed because of high TLB miss rates and because the TLB does not usually have the translation information needed to prefetch the data into the L2 data cache. We also find that co-allocation of frequently used method tables can reduce the number of TLB misses and lower the cost of accessing type information block entries in virtual method calls and runtime type checking.


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
B. Alpern, A. Cocchi, D. Lieber, M. Mergen, and V. Sarkar. Jalapenoa compiler-supported Java virtual machine for servers. In Workshop on Compiler Support for Software System (WCSSS 99), May 1999.
2
 
3
A. Barisone, F. Belliotti, R. Berta, and A. Gloria. Ultrasparc instruction level characterization of Java virtual machine workload. In 2nd Annual Workshop on Workload Characterization (WWC) for Computer System Design, pages 1-24. Kluwer Academic Publishers, 1999.
4
 
5
 
6
K. R. Bowers and D. Kaeli. Characterizing the SPEC JVM98 benchmarks on the Java virtual machine. Technical report, Northeastern University, Dept. of ECE, Computer Architecture Group, 1998.
7
8
9
10
11
12
 
13
14
15
16
 
17
 
18
The Java Hotspot Performance Engine Architecture. http://java.sun.com/products/hotspot/ whitepaper.html.
 
19
 
20
IBM Corp. PowerPC 604e RISC Microprocessor User's Manual, Mar. 1998. G522-0330-00.
21
22
23
 
24
T. Kistler and M. Franz. Automated record layout for dynamic data structures. Technical Report 98-22, Department of Information and Computer Science, University of California at Irvine, 1998.
25
26
27
28
 
29
30
 
31
 
32
R. Radhakrishnan, J. Rubio, L. John, and N. Vijaykrishnan. Execution characteristics of just-in-time compilers. Technical Report TR-990717-01, Department of Electrical and Computer Engineering, University of Texas at Austin, 1999.
 
33
R. Radhakrishnan, N. Vijaykrishnan, L. K. John, and A. Sivasubramaniam. Architectural issues in Java runtime systems. In Proc. of HPCA-6, pages 387-398, Jan. 2000.
34
 
35
 
36
37
 
38
Y. Shuf, M. J. Serrano, M. Gupta, and J. P. Singh. Characterizing memory behavior of Java workloads: A structured view and opportunities for optimizations. Technical report, IBM T.J. Watson Research Center, Yorktown Heights, NY, 2000.
 
39
Standard Performance Evaluation Council. SPEC JVM98 Benchmarks, 1998. http://www.spec.org/osg/jvm98/.
 
40
Standard Performance Evaluation Council. SPEC JBB2000 Benchmark, 2000. http://www.spec.org/osg/jbb2000/.
 
41
Transaction Processing Performance Council. TPC-C Benchmark, 2000. http://www.tpc.org/cspec.html.

CITED BY  26
Collaborative Colleagues:
Yefim Shuf: colleagues
Mauricio J. Serrano: colleagues
Manish Gupta: colleagues
Jaswinder Pal Singh: colleagues