ACM Home Page
Please provide us with feedback. Feedback
Creating and preserving locality of java applications at allocation and garbage collection times
Full text PdfPdf (180 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Seattle, Washington, USA
SESSION: Storage Management table of contents
Pages: 13 - 25  
Year of Publication: 2002
ISBN:1-58113-471-1
Also published in ...
Authors
Yefim Shuf  IBM T. J. Watson Research Center, Yorktown Heights, NY
Manish Gupta  IBM T. J. Watson Research Center, Yorktown Heights, NY
Hubertus Franke  IBM T. J. Watson Research Center, Yorktown Heights, NY
Andrew Appel  Princeton University, Princeton, NJ
Jaswinder Pal Singh  Princeton University, Princeton, NJ
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 48,   Citation Count: 14
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/582419.582422
What is a DOI?

ABSTRACT

The growing gap between processor and memory speeds is motivating the need for optimization strategies that improve data locality. A major challenge is to devise techniques suitable for pointer-intensive applications. This paper presents two techniques aimed at improving the memory behavior of pointer-intensive applications with dynamic memory allocation, such as those written in Java. First, we present an allocation time object placement technique based on the recently introduced notion of prolific (frequently instantiated) types. We attempt to co-locate, at allocation time, objects of prolific types that are connected via object references. Then, we present a novel locality based graph traversal technique. The benefits of this technique, when applied to garbage collection (GC), are twofold: (i) it improves the performance of GC due to better locality during a heap traversal and (ii) it restructures surviving objects in a way that enhances locality. On multiprocessors, this technique can further reduce overhead due to synchronization and false sharing. The experimental results, on a well-known suite of Java benchmarks (SPECjvm98 [26], SPECjbb2000 [27], and jOlden [4]), from an implementation of these techniques in the Jikes RVM [1], are very encouraging. The object co-allocation technique improves application performance by up to 21% (10% on average) in the Jikes RVM configured with a non-copying mark-and-sweep collector. The locality-based traversal technique reduces GC times by up to 20% (10% on average) and improves the performance of applications by up to 14% (6% on average) in the Jikes RVM configured with a copying semi-space collector. Both techniques combined can improve application performance by up to 22% (10% on average) in the Jikes RVM configured with a non-copying mark-and-sweep collector.


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
 
2
A. W. Appel and A. Bendiksen. Vectorized garbage collection. The Journal of Supercomputing, 3:151--160, 1989.
3
 
4
5
6
 
7
K. Chevalier, J. Kodumal, and X. Jiang. Memory subsystem optimization for functional languages: A case study. Technical Report, Computer Science Division, University of California, Berkeley, May 2002. Available at http://www.cs.berkeley.edu/~xdjiang/cs252.
8
9
10
11
12
13
 
14
ECperf. ECperf Home Page. http://java.sun.com/j2ee/ecperf/.
 
15
 
16
Java Grande Forum. The Java Grande Forum Benchmark Suite. Document available at URL http://www.epcc.ed.ac.uk/javagrande/, 2000.
 
17
 
18
M. Karlsson, K. Moore, E. Hagersten, and D. Wood. Memory characterization of the ECperf benchmark. In Proc. of the 2nd Annual Workshop on Memory Performance Issues (WMPI 2002), held in conjunction with the 29th International Symposium on Computer Architecture (ISCA29), Anchorage, Alaska, May 2002.
19
20
21
22
23
 
24
L. A. Smith and J. M. Bull. A multithreaded Java Grande benchmark suite. In Proc. of the Third Workshop on Java for High Performance Computing, Sorrento, Italy, June 2001.
 
25
Standard Performance Evaluation Council. SPEC jAppServer Development Page. http://www.spec.org/osg/jAppServer/.
 
26
Standard Performance Evaluation Council. SPEC JVM98 Benchmarks, 1998. http://www.spec.org/osg/jvm98/.
 
27
Standard Performance Evaluation Council. SPEC JBB2000 Benchmark, 2000. http://www.spec.org/osg/jbb2000/.
 
28
Sun Microsystems, Inc. SPECjbb2000 Results for Sun-Fire 6800 with HotSpot Server VM on Solaris/SPARC, version 1.3.1-02. http://www.spec.org/osg/jbb2000/results/res2001q4/jbb2000-20011105-00092.html, October 2001.
 
29
Sun Microsystems, Inc. SPECjbb2000 Results for Sun-Fire 6800 with HotSpot Server VM on Solaris/SPARC, version 1.3.1-02 . http://www.spec.org/osg/jbb2000/results/res2001q4/jbb2000-20011128-00097.html, October 2001.
30
 
31
E. Yardimci and D. Kaeli. Profile-guided tuning of heap-based memory access. In Proc. of the 2nd Workshop on Memory Performance Issues, Goteberg, Sweden, July 2001.

CITED BY  14

Collaborative Colleagues:
Yefim Shuf: colleagues
Manish Gupta: colleagues
Hubertus Franke: colleagues
Andrew Appel: colleagues
Jaswinder Pal Singh: colleagues